Почему это не рано связывать?
class a{
void display(){
System.out.println("display1");
}
}
class b extends a{
void display(){
System.out.println("display1b");
}
}
class c extends b{
void display(){
System.out.println("display1c");
}
}
class ab {
public static void main(String args[]){
a mn=new c();
mn.display();
}
}
это пример позднего связывания, но когда я скомпилировал этот код, а затем декомпилировал с помощью cavaj, я нашел этот код ab.java:
class ab {
ab(){}
public static void main(String args[]){
c c1 = new c();
c1.display();
}
}
Если это поздняя привязка, то компилятор не должен знать, что метод display() из класса c, но здесь это известно, потому что он заменяет
a mn= новый c(); с
c c1 = новый c(); так что это раннее связывание??