在Ruby中,super
关键字用于调用父类(或基类)的方法。当你在子类中定义一个方法,并且想要在该方法内部调用父类的同名方法时,你可以使用super
关键字。这样可以避免父类方法的硬编码,提高了代码的可维护性。
以下是一个简单的示例,展示了如何在Ruby类定义中使用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
类的initialize
方法和speak
方法中,我们使用了super
关键字来调用父类的相应方法。当我们创建一个Dog
对象并调用其speak
方法时,它将首先调用父类Animal
的speak
方法,然后输出"The dog barks"。