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