Почему это не рано связывать?

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(); так что это раннее связывание??

0 ответов

Другие вопросы по тегам