Полиморфизм в объектно-ориентированном программировании (ООП) — это способность объектов с одинаковым интерфейсом вести себя по-разному в зависимости от их конкретного типа. Проще говоря, один и тот же метод может работать по-разному для разных классов.
Пока что мы рассмотрим только полиморфизм подтипов. В будущем, когда доберемся до дженериков - раскроем и параметрический полиморфизм.
- Один интерфейс — много реализаций.
- Позволяет вызывать одинаковые методы у объектов разных классов, не зная их конкретного типа.
- Способствует гибкости и расширяемости кода.
- Параметрический полиморфизм — работа с объектами разных типов с использованием обобщений (Generics).
Пример: универсальные коллекции в Java или C#.
- Ad-hoc полиморфизм — использование перегрузки методов и операторов.
Пример: перегрузка оператора + для строк и чисел.
- Полиморфизм подтипов (наследование) — возможность использовать объекты подклассов вместо объектов суперкласса.
Пример: переопределение методов в дочерних классах.