溫馨提示×

Ruby多態(tài)性如何實(shí)現(xiàn)方法重載

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

在 Ruby 中,多態(tài)性是通過方法重寫(method overriding)實(shí)現(xiàn)的。方法重寫允許子類繼承父類的方法,并在子類中根據(jù)需要重寫這些方法。這使得子類可以以不同的方式實(shí)現(xiàn)相同的方法,從而實(shí)現(xiàn)多態(tài)性。

以下是一個(gè)簡單的示例,展示了如何在 Ruby 中實(shí)現(xiàn)方法重載:

class Animal
  def speak
    puts "The animal makes a sound"
  end
end

class Dog < Animal
  # 方法重寫:在子類中重寫父類的 speak 方法
  def speak
    puts "The dog barks"
  end
end

class Cat < Animal
  # 方法重寫:在子類中重寫父類的 speak 方法
  def speak
    puts "The cat meows"
  end
end

animals = [Dog.new, Cat.new]

animals.each do |animal|
  animal.speak
end

在這個(gè)示例中,我們定義了一個(gè)名為 Animal 的基類,其中包含一個(gè)名為 speak 的方法。然后,我們創(chuàng)建了兩個(gè)子類:DogCat,它們分別繼承自 Animal 類。在子類中,我們重寫了 speak 方法,以提供不同的行為。

當(dāng)我們遍歷 animals 數(shù)組并調(diào)用每個(gè)動(dòng)物的 speak 方法時(shí),Ruby 會(huì)根據(jù)對(duì)象的實(shí)際類型(DogCat)動(dòng)態(tài)地選擇要調(diào)用的方法。這就是 Ruby 中的多態(tài)性。

0