Полиморфизм в объектно-ориентированных языках программирования, включая Ruby, означает способность объектов разных классов отвечать на одни и те же сообщения или иметь методы с одинаковыми именами, но с различной реализацией.
В Ruby полиморфизм проявляется через концепцию динамической типизации и использование общих интерфейсов для классов. Например, если у вас есть несколько классов, реализующих метод display_info, то все эти классы могут иметь свои собственные версии этого метода, но каждый из них будет отвечать на вызов display_info по-своему.
Пример полиморфизма в Ruby:
class Animal
def speak
puts "Some sound"
end
end
class Dog < Animal
def speak
puts "Woof!"
end
end
class Cat < Animal
def speak
puts "Meow!"
end
end
# Полиморфизм - вызов метода speak у объектов разных классов
animals = [Animal.new, Dog.new, Cat.new]
animals.each { |animal| animal.speak }
Это позволяет использовать общий интерфейс (speak в данном случае) для разных типов объектов (Animal, Dog, Cat) без необходимости знать конкретный тип объекта.