在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
基类和一个继承自Animal
的Dog
子类。Dog
类重写了speak
方法,但在方法内部使用了super
关键字来调用Animal
类的speak
方法。当我们创建一个Dog
对象并调用其speak
方法时,它将首先调用Animal
类的speak
方法,然后调用Dog
类自己的speak
方法。输出结果如下:
The animal makes a sound
The dog barks
这就是Ruby中super
关键字的使用方法。通过使用super
,你可以在子类中重用父类的方法,同时保持代码的整洁和易于维护。