这里:“public class B extends A {
int fun2() {
return 456;
}
....”
你的B继承了A,但是在B里面,你复写了fun2()方法,
当你在主函数中B b = new B(); b调用了A里的fun1(),而fun1()又输出的是fun2()的返回值,
而你已经复写了fun2(),所以fun1()就去调用你复写后的fun2(),于是这里返回第一个456.
然后,a还是调用fun1(),fun1()还是调用了复写后的fun2()方法,返回还是456.
还有一点,我调试的时候,需要把“public class B extends A”前面的public去掉才可以。不知为何 |