Поліморфізм - це принцип
об'єктно-орієнтованого програмування, який дозволяє об'єктам одного класу використовувати методи іншого класу. Це може бути досягнуто через спеціальні механізми, такі як перевизначення методів або інтерфейси.
У Ruby поліморфізм можна створити через використання спільного ім'я методу для різних класів.
Приклад використання поліморфізму в Ruby
# Створення класу Shape з методом draw
class Shape
def draw
raise NotImplementedError, 'Subclasses must implement the draw method'
end
end
# Створення класу Circle, який успадковує від Shape
class Circle < Shape
def draw
puts 'Drawing a circle'
end
end
# Створення класу Rectangle, який також успадковує від Shape
class Rectangle < Shape
def draw
puts 'Drawing a rectangle'
end
end
# Використання поліморфізму
circle = Circle.new
rectangle = Rectangle.new
# Виклик методу draw для кола
circle.draw
# Виклик методу draw для прямокутника
rectangle.draw
У цьому прикладі обидва класи
Circle і
Rectangle успадковують від базового класу
Shape і реалізують метод
draw. При виклику методу
draw для об'єктів класів
Circle та
Rectangle, викликаються відповідні реалізації методу, що виражає поліморфізм. Також буде корисним прочитати про
наслідування в ruby.