читаю "Философию Java" Эккеля. Как-то к сожалению он сложно описывает некоторые моменты, и один из таких: Динамическое связывание.
Я хорошо понимаю на примерах где есть статическое связывание, а где динамическое. Но как именно компилятор узнаёт какой метод вызвать если действует полиморфизм?
Вот как это описал Эккель: "...Присоединение вызова метода к телу метода называеться связыванием ...Проблема решаеться благодаря позднему связыванию, тоесть связыванию проводимому во время выполнения программы, в зависимости от типа объекта..."
Вопрос: Кто-нибудь может объяснить простыми словами как компилятор определяет к какому объекту вызвать метод
Простые слова: компилятор это делает с помощью таблицы виртуальных методов.
https://eelcovisser.org/blog/2011/05/08/virtual-method-tables/
Сборка персонального компьютера от Artline: умный выбор для современных пользователей