为什么它没有早期绑定?

时间:2013-11-16 10:02:16

标签: java late-binding early-binding

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 = new c();   与
   c c1 = new c();  ,所以这是早期绑定??

0 个答案:

没有答案