java--------动态的经典例题
来源:互联网 发布:python 私有属性 编辑:程序博客网 时间:2024/05/22 17:45
多态一:
什么是动态:
同一行为的多种不同表达,或者同一行为的多种不同实现就叫做多态。
1)Person,Student,Teacher之间的关系
2)有一个“车”的父类,宝马继承自车,奔驰继承自车。那么反过来,
2)有一个“车”的父类,宝马继承自车,奔驰继承自车。那么反过来,
车可以是宝马,也可以是奔驰,具有不同的形态,这种现象就叫多态。
如,我要上街买个东西,请你给我一辆车,这时你传给我的
车(一个Car对象,形参)的一个实例(实参)就是多态(可以有
不同的实现,宝马、奔驰、自行车等都可以)。
3) “笔”是父类,钢笔、铅笔、圆珠笔都是子类。这时,
3) “笔”是父类,钢笔、铅笔、圆珠笔都是子类。这时,
如果请你给我一支笔,你可以给任意一支笔。
运行规则:
方法覆盖后出现的运行时多态,其运行规则是:编译时看数据类型,
运行时看实际的对象类型(new谁调谁)。
多态二:
匹配原则:
先: 确保参数完全匹配O的前提下,依次匹配this与super。
再: 考虑参数用super(O)渐近匹配O,依次匹配this与super
当: 存在子类覆盖父类方法时,根据new子类实例的原则,先调子类方法。
再: 考虑参数用super(O)渐近匹配O,依次匹配this与super
当: 存在子类覆盖父类方法时,根据new子类实例的原则,先调子类方法。
匹配顺序:
this.show( O ) super.show( O ) this.show( super(O) ) super.show( super(O) )
多态经典例题:
匹配顺序: this.show(O), super.show(O), this.show(super(O)), super.show(super(O))1)先确保参数完全匹配O的前提下,依次匹配this与super。2)再考虑参数用super(O)渐近匹配O,依次匹配this与super3)当存在子类覆盖父类方法时,根据new子类实例的原则,先调子类方法。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(); 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 }}
2 0
- java--------动态的经典例题
- 学习java的经典例题
- 动态规划经典例题
- Java经典例题!
- java经典例题
- java 经典算法 例题
- 【动态规划·经典例题】鸡蛋的硬度
- stl的经典例题
- Java经典算法例题分享
- Java经典算法例题分享
- Java程序员笔试经典例题
- Java程序员笔试经典例题
- JAVA经典例题求素数
- Java多线程经典例题一
- java中基于循环嵌套的使用例题经典
- 动态规划经典例题之传纸条
- 【动态规划·经典例题】滑雪
- 经典的大数据例题
- java内存分配和String类型的深度解析
- poj1014.Dividing (暴力 && 搜索)
- 记两个自己查找错误粗心的地方
- VC对于XML的解析以及操作
- 深入浅出Neutron :OpenStack网络技术
- java--------动态的经典例题
- 六款值得推荐的android(安卓)开源框架简介
- Android 简单天气应用
- 让 mediatomb 支持中文
- JAVA wait(), notify(),sleep详解
- ios图片拉伸解决办法
- 面试中五个咸鱼翻身的机会,好好把握!
- 高德地图设置中国经纬度范围
- Linux 映射文件