ruby

Ruby继承机制怎样使用super关键字

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

在Ruby中,super关键字用于调用父类(或基类)的方法。当你在子类中想要重写父类的方法,但又想在子类的方法中使用父类的实现时,你可以使用super关键字。这样可以让你的代码更加简洁,同时避免了父类和子类方法的重复编写。

以下是一个简单的例子来说明如何使用super关键字:

class Animal
  def initialize(name)
    @name = name
  end

  def speak
    puts "The animal makes a sound"
  end
end

class Dog < Animal
  def initialize(name, breed)
    super(name) # 调用父类的initialize方法
    @breed = breed
  end

  def speak
    super # 调用父类的speak方法
    puts "The dog barks"
  end
end

my_dog = Dog.new("Buddy", "Golden Retriever")
my_dog.speak

在这个例子中,我们有一个Animal基类和一个继承自AnimalDog子类。Dog类重写了speak方法,但在方法内部使用了super关键字来调用Animal类的speak方法。当我们创建一个Dog对象并调用其speak方法时,它将首先调用Animal类的speak方法,然后调用Dog类自己的speak方法。输出结果如下:

The animal makes a sound
The dog barks

这就是Ruby中super关键字的使用方法。通过使用super,你可以在子类中重用父类的方法,同时保持代码的整洁和易于维护。

0
看了该问题的人还看了