溫馨提示×

Ruby繼承機(jī)制怎樣使用super關(guān)鍵字

小樊
81
2024-11-06 07:27:41
欄目: 編程語言

在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基類和一個繼承自AnimalDog子類。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ù)。

0