Files
obsidian/Программирование на Java/ООП/Полиморфизм/Полиморфизм.md
T
roma-dxunvrs 0e6e583e6d
deploy / Pull and Restart (push) Successful in 17s
refactor: wiki links -> md links
2026-09-22 08:52:23 +03:00

15 lines
1.2 KiB
Markdown

Единообразная обработка с помощью общего интейрфейса различных типов данных.
## Виды:
- [Ad-hoc (перегрузка)](Ad-hoc%20(перегрузка).md)
- [Полиморфизм подтипов](Полиморфизм%20подтипов.md)
- [Параметрический полиморфизм](../../Дженерики/Параметрический%20полиморфизм.md)
## Позволяет
- Писать менее специфичный, более общий код
- Обеспечить расширяемость программ
## Динамическое связывание
- В классе хранится таблица виртуальных методов `vtable`
- При компиляции - в таблицу заносятся методы класса
- При загрузке класса - методу задается конкретный адрес
- При выполнении из таблицы берется адрес метода
- У потомков класс ссылка на метод имеет то же смещение
- При реализации интерфейса у ссылки - другое смещение