Динамический (или полиморфизм времени выполнения) реализуется через переопределение методов (override). Это означает, что решение о том, какой метод будет вызван, принимается во время выполнения программы, а не во время компиляции.
Ключевые моменты:
- Наследование: Требует наличия иерархии классов, где подкласс наследует от суперкласса.
- Переопределение: Подкласс предоставляет свою собственную реализацию метода, который уже объявлен в суперклассе.
- Ссылка на суперкласс: Объект подкласса может быть присвоен ссылке типа суперкласса.
- Вызов метода: При вызове переопределенного метода через ссылку на суперкласс будет выполнена реализация из фактического объекта (подкласса).
Пример:
java
Преимущества:
- Гибкость: Позволяет обрабатывать объекты разных подклассов единообразно через общую ссылку на суперкласс.
- Расширяемость: Легко добавлять новые подклассы без изменения существующего кода, который использует ссылку на суперкласс.
- Упрощение кода: Позволяет писать более обобщенный код.