1
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 类,但在这里它是知道的,因为它替换
了 mn=new c(); 与
c c1 = 新 c(); ,所以这是早期绑定??

4

0 回答 0