黑马程序员技术交流社区
标题: 不理解看不懂父类引用子类对象,求解释, [打印本页]
作者: ╰朕_有恃无恐 时间: 2013-12-2 17:37
标题: 不理解看不懂父类引用子类对象,求解释,
本帖最后由 ╰朕_有恃无恐 于 2013-12-2 22:25 编辑
每次遇见父类引用子类的题,我直接晕了,怎么也看不懂程序是怎么运行的,麻烦高手教一个简单易懂的方法,最好详细点
作者: HAnG 时间: 2013-12-2 17:46
A是父类,B是子类
父类引用子类对象就是A a = new B()
这是多态的一种表现形式。
作者: 25343215 时间: 2013-12-2 17:49
本帖最后由 25343215 于 2013-12-2 17:52 编辑
楼主的问题,就是对多态还是不太熟悉:多态:
(1)同一个对象,在程序不同时刻的多种运行状态。举例:动物,狗是狗,狗是动物。水(气态,液态,固态)
(2)多态前提
A:存在着继承或者实现关系
B:有方法的重写
C:父类(接口)引用指向子类(实现)对象
(3)多态的好处和弊端:
好处:多态的存在提高了程序的扩展性和后期可维护性
弊端:虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。
不能预先使用子类中定义的特有功能。
(4)多态中对象调用成员的特点
Fu f = new Zi();
A:成员变量
编译看左边,运行看左边
B:成员方法
编译看左边,运行看右边
C:静态方法
编译看左边,运行看左边
(5)多态的思想
指挥同一批对象做事情。举例:带兵打仗,下课等。
作者: 枫儿 时间: 2013-12-2 20:08
建议你把毕老师多态那段复习一遍!
作者: sd110572 时间: 2013-12-2 20:31
父类引用子类对象
就是定义一个A类型的对象引用
只要是A类的子类所new的实体,都可以把这个实体地址赋给A类型引用。
运行时用子类构造方法初始化,A类型引用调用的只能是A类里面存在的方法。
运行时如果子类有同名方法,就执行子类的内容。
作者: ╰朕_有恃无恐 时间: 2013-12-2 22:24
真的很感谢你,我仔细研究了好半天,多少了解点嘿嘿!
作者: ╰朕_有恃无恐 时间: 2013-12-2 22:25
嘻嘻总结的很实用!谢谢你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |