在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
,你可以在子類中重用父類的方法,同時保持代碼的整潔和易于維護。