在Ruby中,繼承機制通過繼承類和重寫方法來實現。實例變量是在類的實例中定義的變量,它們以@開頭。在繼承關系中,子類可以訪問父類的實例變量,但是如果要在子類中修改這些變量,需要使用super關鍵字來調用父類的方法。
以下是一個簡單的例子來說明如何在Ruby中使用繼承機制區分實例變量:
# 父類
class Parent
def initialize
@parent_var = "I am a parent variable"
end
def show_parent_var
puts @parent_var
end
end
# 子類
class Child < Parent
def initialize
super # 調用父類的初始化方法,這樣子類實例也可以訪問父類的實例變量
@child_var = "I am a child variable"
end
def show_child_var
puts @child_var
end
def show_parent_var # 重寫父類的方法
puts @parent_var
end
end
# 創建子類實例
child = Child.new
# 訪問父類和子類的實例變量
child.show_parent_var # 輸出: I am a parent variable
child.show_child_var # 輸出: I am a child variable
在這個例子中,我們創建了一個名為Parent的父類和一個名為Child的子類。父類有一個實例變量@parent_var和一個方法show_parent_var。子類繼承了父類,并重寫了show_parent_var方法。同時,子類還有一個自己的實例變量@child_var和一個方法show_child_var。
當我們創建一個Child類的實例并調用它的方法時,我們可以看到父類和子類的實例變量都可以被訪問和修改。這就是Ruby繼承機制如何區分實例變量的方法。