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

1.2 KiB

Единообразная обработка с помощью общего интейрфейса различных типов данных.

Виды:

  • Ad-hoc (перегрузка)
  • Полиморфизм подтипов
  • Параметрический полиморфизм

Позволяет

  • Писать менее специфичный, более общий код
  • Обеспечить расширяемость программ

Динамическое связывание

  • В классе хранится таблица виртуальных методов vtable
    • При компиляции - в таблицу заносятся методы класса
    • При загрузке класса - методу задается конкретный адрес
    • При выполнении из таблицы берется адрес метода
  • У потомков класс ссылка на метод имеет то же смещение
  • При реализации интерфейса у ссылки - другое смещение