Ответ 1
Да, виртуальные методы обрабатываются по-разному с помощью компилятора и среды выполнения. JVM специально использует таблицу виртуальных методов для отправки виртуального метода:
Таблица диспетчера объектов будет содержат адреса объекта динамически связанные методы. метод вызовы выполняются путем извлечения адрес метода из объекта таблица рассылки. Таблица рассылки то же самое для всех объектов, принадлежащих тот же класс, и поэтому обычно разделяемых между ними. Объекты принадлежность к классам, совместимым с типом (например, братьев и сестер в иерархия наследования) раскладные столы с одинаковым расположением: адрес данного метода будет появляться с одинаковым смещением для всех совместимых с классом классов. Таким образом, выбор адреса метода из заданное смещение таблицы отправки метод, соответствующий объект фактический класс.