在Ruby中,super
關(guān)鍵字用于調(diào)用父類(或基類)的方法。當(dāng)你在子類中想要重寫父類的方法,但又想在子類的方法中使用父類的實(shí)現(xiàn)時,你可以使用super
關(guān)鍵字。這樣可以讓你的代碼更加簡潔,同時避免了父類和子類方法的重復(fù)編寫。
以下是一個簡單的例子來說明如何使用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
類重寫了speak
方法,但在方法內(nèi)部使用了super
關(guān)鍵字來調(diào)用Animal
類的speak
方法。當(dāng)我們創(chuàng)建一個Dog
對象并調(diào)用其speak
方法時,它將首先調(diào)用Animal
類的speak
方法,然后調(diào)用Dog
類自己的speak
方法。輸出結(jié)果如下:
The animal makes a sound
The dog barks
這就是Ruby中super
關(guān)鍵字的使用方法。通過使用super
,你可以在子類中重用父類的方法,同時保持代碼的整潔和易于維護(hù)。