在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继承机制如何区分实例变量的方法。