Java多态--- 如何匹配的呢?
来源:互联网 发布:ubuntu的浏览器字体 编辑:程序博客网 时间:2024/06/14 08:38
题目如下
匹配原则:
先: 确保参数完全匹配O的前提下,依次匹配this与super。
再: 考虑参数用super(O)渐近匹配O,依次匹配this与super
当: 存在子类覆盖父类方法时,根据new子类实例的原则,先调子类方法。
匹配顺序:
this.show( O ) super.show( O ) this.show( super(O) ) super.show( super(O) )
A a = new B(); 等于号左边决定 选择哪个参数 等号右边选择方法, new 谁调谁, 没有再我、去父类找。
package Studying;class A { public String show(D obj){ return ("A and D"); } public String show(A obj){ return ("A and A"); } } class B extends A{ public String show(B obj){ return ("B and B"); } public String show(A obj){ return ("B and A"); } public String show(D obj){ return ("B and D"); } } class C extends B{} class D extends B{}class E extends D{}public class TestDT{ public static void main(String args[]){ A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); E e = new E(); System.out.println( a2.show(d));// System.out.println(a1.show(b)); // ① A and A// System.out.println(a1.show(c)); // ② A and A// System.out.println(a1.show(d)); // ③ A and D// System.out.println(a2.show(b)); // ④ B and A// System.out.println(a2.show(c)); // ⑤ B and A// System.out.println(a2.show(d)); // ⑥ A and D// System.out.println(b.show(b)); // ⑦ B and B// System.out.println(b.show(c)); // ⑧ B and B// System.out.println(b.show(d)); // ⑨ A and D// }}
阅读全文
0 0
- Java多态--- 如何匹配的呢?
- 如何学习Java呢?
- 如何学习Java呢?
- 如何参与广州传智播客Java培训的优惠价格呢
- java中如何解决线程不安全的问题呢?
- 夏天到了,如何选择墨镜与脸型匹配呢?
- 一个不懂java的人,是如何看java的呢?我是这样的哦!
- 如何学习Java呢?教教你!~
- 作为初学者/自学者如何学习Java呢?
- Java中如何遍历Map呢?
- 如何写好Java程序呢
- java 如何检测内在泄漏呢
- Java 如何获取客户端IP呢?
- 如何学习好Java语言呢?
- Java程序在运行的时候具体是如何确定.class文件位置的呢?
- 在java访问数据库时, 如何写空值到各种类型的字段中呢?
- 泣血跪求各位高手,如何利用JAVA生成微软的Project文件(.mpp)呢?
- 如何在C++代码中访问并调用Java的成员呢?
- C++之new 和 delete
- Picasso
- JavaScript定义类的方法
- 转换到 COFF 期间失败: 文件无效或损坏和VS2010不能创建项目的解决办法
- StyleBank: An Explicit Representation for Neural Image Style Transfer 论文理解
- Java多态--- 如何匹配的呢?
- 关于php如何在页面之间传递参数的问题
- 两个栈实现一个队列及相关类型题
- 【动态规划】qbxt精英班
- 数值的整数次方
- HDU 1846(Brave Game) 巴什博弈 Java
- 《STL源码剖析》-空间配置器(一)构造和析构
- hdu1166单点更新,区间求和
- 命令学习