Java_动态绑定机制复习 刺骨的言语ヽ痛彻心扉 2024-04-01 17:19 18阅读 0赞 > ### **结论** ### > > **属性没有动态绑定机制,在哪个类声明,就在哪个类使用,但是同样是遵循继承机制,若子类没有该对象,会向其父类寻找。当调用对象方法时候,该方法会和该对象的类型地址/运行类型绑定,也就是看运行类型为什么类型,则从该类型的类调用方法。**如运行类型为子类,则方法从子类调用,不会调用父类的同名方法,若子类没用该方法,则会向上寻找该方法。废话不多说,直接上代码。大家可以拿我的代码自己去调试一下,把子类的方法和属性屏蔽一下,可以更好的理解动态绑定。 /** * @Author: Ming * @Function: java动态绑定机制复习 * @Date: 2022/11/10/21:09 */ public class dynamic { public static void main(String[] args) { A a = new B(); System.out.println(a.i);//10 System.out.println(a.sum());//40 System.out.println(a.sum1());//30 System.out.println("======="); B a01 = (B)a; System.out.println(a01.i);//20 System.out.println(a01.sum());//40 System.out.println(a01.sum1());//30 } } class A{ public int i = 10; public int sum(){ return getI() + 10; } public int sum1(){ return i + 10; } public int getI(){ return i; } } class B extends A{ public int i = 20; public int sum(){ return i + 20; } public int sum1(){ return i + 10; } public int getI(){ return i; } } > 运行结果如下 > > 10 > 40 > 30 > ======= > 20 > 40 > 30
还没有评论,来说两句吧...