Sobes.tech
Back to questions
Junior — Middle
68

Можешь перечислить виды полиморфизма, встречающиеся в объектно-ориентированном программировании?

Answer from AI

sobes.tech AI

В объектно-ориентированном программировании (ООП) выделяют несколько видов полиморфизма:

  1. Подтипный (Subtype Polymorphism) — позволяет объектам разных классов, связанных наследованием, использовать один и тот же интерфейс. Например, метод, принимающий базовый класс, может работать с объектами производных классов.

  2. Параметрический (Parametric Polymorphism) — реализуется через обобщения (generics), когда функции или классы работают с разными типами данных без изменения кода.

  3. Ад-хок (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); }

Эти виды полиморфизма позволяют писать гибкий и расширяемый код.