myObject
- это поле с объявленным типом времени компиляции A. Во время выполнения оно будет ссылаться на объект типа B.
Это различие между объявленным типом (или временем компиляции) переменныхи тип объектов во время выполнения крайне важен для понимания того, как полиморфизм работает в статически типизированном языке, таком как Java.Некоторые вещи (например, вызов переопределенных методов) определяются типом времени выполнения, другие (например, вызов перегруженных или статических методов) типом времени компиляции.
В общем: объявленный тип определяет, что выможно делать с объектом, тогда как тип среды выполнения определяет, как он будет себя вести.