在Ruby中,繼承機(jī)制通過繼承類和重寫方法來實現(xiàn)。實例變量是在類的實例中定義的變量,它們以@開頭。在繼承關(guān)系中,子類可以訪問父類的實例變量,但是如果要在子類中修改這些變量,需要使用super關(guān)鍵字來調(diào)用父類的方法。
以下是一個簡單的例子來說明如何在Ruby中使用繼承機(jī)制區(qū)分實例變量:
# 父類
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 # 調(diào)用父類的初始化方法,這樣子類實例也可以訪問父類的實例變量
@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
# 創(chuàng)建子類實例
child = Child.new
# 訪問父類和子類的實例變量
child.show_parent_var # 輸出: I am a parent variable
child.show_child_var # 輸出: I am a child variable
在這個例子中,我們創(chuàng)建了一個名為Parent的父類和一個名為Child的子類。父類有一個實例變量@parent_var和一個方法show_parent_var。子類繼承了父類,并重寫了show_parent_var方法。同時,子類還有一個自己的實例變量@child_var和一個方法show_child_var。
當(dāng)我們創(chuàng)建一個Child類的實例并調(diào)用它的方法時,我們可以看到父類和子類的實例變量都可以被訪問和修改。這就是Ruby繼承機(jī)制如何區(qū)分實例變量的方法。