温馨提示×

Ruby继承机制如何区分实例变量

小樊
82
2024-11-06 07:34:41
栏目: 编程语言

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

0