Back to questions
Junior — Middle
53
Можешь ли ты перечислить различные типы полиморфизма в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании выделяют несколько типов полиморфизма:
-
Полиморфизм подтипов (Subtype Polymorphism) — самый распространённый тип, реализуемый через наследование и переопределение методов. Позволяет объектам разных классов, связанных иерархией, использовать один и тот же интерфейс.
-
Параметрический полиморфизм (Parametric Polymorphism) — реализуется через обобщения (generics), когда функции или классы работают с любыми типами данных, не завися от конкретного типа.
-
Полиморфизм ad hoc (Ad hoc Polymorphism) — достигается через перегрузку методов или операторов, когда одна функция имеет несколько реализаций с разными параметрами.
Пример в Java с полиморфизмом подтипов:
class Animal {
void sound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Bark");
}
}
class Cat extends Animal {
@Override
void sound() {
System.out.println("Meow");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.sound(); // Bark
myCat.sound(); // Meow
}
}