| 由这段代码: 我的问题是:复制代码
class A {
    public A() {
        printValue();
    }
    public void printValue() {
        System.out.println("A_printValue");
    }
}
class B extends A {
    public void printValue() {
        System.out.println("B_printValue");
    }
    public void getField() {
        System.out.println("B_getField");
    }
}
class Test {
    public static void main(String[] args) {
        A a = new B();
        a.printValue();
        ((B)a).getField();
    }
}
对象a的实际类型,这里是指A,还是B ?
 如果是A的话,a.printValue(),调用的是B中的方法,这里的动态绑定顺序又是怎么回事?
 这里和A()中调用printValue(),调用B中的方法,是否是相同原因?
 
 |