Полиморфизм
Polymorphism
Полиморфизм подтипов
Возможность функций принимать объекты разных типов, если эти типы наследуют от одного и того же вышестоящего типа.
Параметрический полиморфизм
?
Приведение типов
Возможность функции принимать объектов разных типов и автоматически приводить их к нужному типу, например:
def say_hello(to:)
"Hello, #{to}!"
end
say_hello(to: "John") #=> "Hello, John!"
say_hello(to: 17) #=> "Hello, 17!"
say_hello(to: nil) #=> "Hello, !"
Перегрузка
Возможность создать несколько одноимённых функций, выполняющих разный код так, чтобы компилятор определял, какую из них использовать, в зависимости от типа передаваемого в функцию значения.