Можешь ли ты перечислить различные типы полиморфизма в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании (ООП) выделяют несколько основных типов полиморфизма:
-
Полиморфизм подтипов (Subtype Polymorphism) — самый распространённый тип, реализуемый через наследование и переопределение методов. Позволяет использовать объекты подклассов вместо объектов базового класса.
-
Параметрический полиморфизм (Parametric Polymorphism) — реализуется через обобщённые типы (generics), когда функции или классы работают с любыми типами данных.
-
Ад-хок полиморфизм (Ad-hoc Polymorphism) — включает перегрузку функций и операторов, когда одна функция имеет несколько реализаций с разными типами параметров.
-
Полиморфизм времени выполнения (Runtime Polymorphism) — достигается через виртуальные методы и динамическое связывание, когда вызов метода определяется во время исполнения.
Пример полиморфизма подтипов на Swift (iOS):
class Animal {
func sound() {
print("Some sound")
}
}
class Dog: Animal {
override func sound() {
print("Bark")
}
}
class Cat: Animal {
override func sound() {
print("Meow")
}
}
let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
animal.sound() // Вызов метода зависит от реального типа объекта
}