在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"。