java继承链中方法调用优先级.顺序:this.show(object)>super.show(object)>this.show((super)object)>super.show((super))
来源:互联网 发布:马里亚纳网络性奴 编辑:程序博客网 时间:2024/06/07 11:56
先看代码如下:
运行结果
在上述代码中,类B继承了类A,类C继承了类B,A中show()方法发生了重载,B中重写了A中的show(C )方法。
这里先说一下向上造型的一个知识点:向上造型时,编译期时根据引用类型(左边)调用方法,而运行期是根据实例对象的类型(右边)调用方法。
第一条输出语句是 父类引用a1 指向 父类实例对象,编译时查看A类中是否有show(c)的方法,有,通过,运行,输出1---A and C;
第二条输出语句是 父类引用a2 指向 子类实例对象,因为子类B重写了父类的show(c)方法,所以向上造型(父类引用指向子类对象)时,父类A型引用变量可以点出子类B中的show(c)方法,编译通过,运行时调用子类B中的show(C)方法,结果为2----B and C;
第三条输出语句是 父类引用变量a2 指向 子类实例对象,根据优先级顺序,先看第一个级别this.show(object),因为向上造型,所以父类引用a2点不出子类B中的show(b)方法,编译不行;再看第二个级别super.show(object),父类A中也没有show(b)方法,编译不通过;然后再看第三个级别this.show(super(object)),此时a2.show(b)就变成了a2.show(a),B 因为继承了A类,所以B中有show(a)的方法,编译通过,到运行期,根据对象类型调用方法,输出结果就是3---A and A。
)
阅读全文
0 0
- java继承链中方法调用优先级.顺序:this.show(object)>super.show(object)>this.show((super)object)>super.show((super))
- 方法的重写、Object类、继承、super
- 【Object-C】继承,super关键字
- java 中super、this
- JAVA第七节-继承,继承中方法重写,继承的初始化顺序,final关键字,super关键字,object类
- java中wait()、this.wait()、super.wait()、object.wait()的使用区别
- Object C---super&self
- Object-c self super
- extend&super&Object&Abstract
- 继承 this与super
- 类 继承 super this
- [java]构造方法super() this()
- java中this和super
- java中this & super关键字
- Java中this、super用法
- Java中super、this关键字
- java中 this super关键字
- java中super和this
- 网易题目:集合+
- 实验吧三道sql注入题目解题思路以及当中至少点整理(简单的SQL注入、简单的SQL注入2、简单的SQL注入)
- 区间查询+位运算
- 时间复杂度和空间复杂度
- 第四章 第四节:子查询 (Subquery)
- java继承链中方法调用优先级.顺序:this.show(object)>super.show(object)>this.show((super)object)>super.show((super))
- 一对多查询(10)
- php eval
- 士兵杀敌(一)【NYOJ 108 线段树】
- 指定变量的类型及变量的间接引用
- android material design 插件图标位置问题
- js常用返回网页顶部几种方法
- Codeforces Round #294 (Div. 2) E LCA倍增
- Ant工具学习~~~~