Back to questions
Junior — Middle
68
Можешь перечислить виды полиморфизма, встречающиеся в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
В объектно-ориентированном программировании (ООП) выделяют несколько видов полиморфизма:
-
Подтипный (Subtype Polymorphism) — позволяет объектам разных классов, связанных наследованием, использовать один и тот же интерфейс. Например, метод, принимающий базовый класс, может работать с объектами производных классов.
-
Параметрический (Parametric Polymorphism) — реализуется через обобщения (generics), когда функции или классы работают с разными типами данных без изменения кода.
-
Ад-хок (Ad-hoc Polymorphism) — перегрузка функций или операторов, когда одна функция может иметь несколько реализаций с разными параметрами.
Пример в C#:
// Подтипный полиморфизм
class Animal { public virtual void Speak() { Console.WriteLine("Animal sound"); } }
class Dog : Animal { public override void Speak() { Console.WriteLine("Bark"); } }
// Параметрический полиморфизм
class Box<T> { public T Value; }
// Ад-хок полиморфизм (перегрузка)
void Print(int x) { Console.WriteLine(x); }
void Print(string s) { Console.WriteLine(s); }
Эти виды полиморфизма позволяют писать гибкий и расширяемый код.