ООП — полиморфизм
Интерактивное демо «ООП — полиморфизм» — раздел Энциклопедия · Код и разработка.
Полиморфизм: переопределение, единый интерфейс и перегрузка
Как в примерах из статьи — Животное/Кот/Собака, Фигура/Круг/Прямоугольник и перегрузка сложить()
Переменная типа Животное ссылается на Кот или Собаку — при вызове издатьЗвук() срабатывает реализация фактического типа.
class Животное
издатьЗвук()базовая реализация
→ Животное издаёт звук.
▼ extends
class Кот : Животное
издатьЗвук()override
→ Мяу!
Тип переменной — Животное, фактический объект — Кот. Вызов метода идёт по реальному типу.
Животное кот = new Кот();Полиморфный цикл
Животное[] зоопарк = { new Кот(), new Собака(), new Кот() }