在Ruby中,super
關(guān)鍵字用于調(diào)用父類(或基類)的方法。當(dāng)你在子類中定義一個方法,并且想要在該方法內(nèi)部調(diào)用父類的同名方法時,你可以使用super
關(guān)鍵字。這樣可以避免父類方法的硬編碼,提高了代碼的可維護性。
以下是一個簡單的示例,展示了如何在Ruby類定義中使用super
關(guān)鍵字:
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) # 調(diào)用父類的initialize方法
@breed = breed
end
def speak
super # 調(diào)用父類的speak方法
puts "The dog barks"
end
end
my_dog = Dog.new("Buddy", "Golden Retriever")
my_dog.speak
在這個示例中,我們定義了一個Animal
類和一個繼承自Animal
的Dog
類。在Dog
類的initialize
方法和speak
方法中,我們使用了super
關(guān)鍵字來調(diào)用父類的相應(yīng)方法。當(dāng)我們創(chuàng)建一個Dog
對象并調(diào)用其speak
方法時,它將首先調(diào)用父類Animal
的speak
方法,然后輸出"The dog barks"。