在Ruby中,多態性可以通過方法重載和方法重寫來實現。方法重載是指在同一個類中定義多個同名方法,但參數列表不同,根據傳入的參數來調用不同的方法。方法重寫是指子類重寫父類的同名方法,實現不同的功能。
# 方法重載
class Animal
def make_sound(sound)
puts sound
end
def make_sound(sound1, sound2)
puts "#{sound1} and #{sound2}"
end
end
animal = Animal.new
animal.make_sound("Meow") # 輸出 Meow
animal.make_sound("Woof", "Meow") # 輸出 Woof and Meow
# 方法重寫
class Cat < Animal
def make_sound(sound)
puts "Cat says: #{sound}"
end
end
cat = Cat.new
cat.make_sound("Meow") # 輸出 Cat says: Meow
通過方法重載和方法重寫,可以實現多態性,使得不同的對象可以以統一的方式進行操作,提高代碼的靈活性和可維護性。