1、当调用对象方法的时候,该方法会和该对象的内存地址/运行类型进行绑定。
在调用a.sum()方法后,在子类没有定义sum方法,会向父类去查找,此时父类又调用的get1(),因为Java的动态绑定机制,于是会去调用子类的get1()方法而不是父类的get1()方法,结果输出30。
2、当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用 ,结果输出30。
1、当调用对象方法的时候,该方法会和该对象的内存地址/运行类型进行绑定。
在调用a.sum()方法后,在子类没有定义sum方法,会向父类去查找,此时父类又调用的get1(),因为Java的动态绑定机制,于是会去调用子类的get1()方法而不是父类的get1()方法,结果输出30。
2、当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用 ,结果输出30。