A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 ╰朕_有恃无恐 于 2013-12-2 22:25 编辑

每次遇见父类引用子类的题,我直接晕了,怎么也看不懂程序是怎么运行的,麻烦高手教一个简单易懂的方法,最好详细点

6 个回复

倒序浏览
A是父类,B是子类
父类引用子类对象就是A a = new B()
这是多态的一种表现形式。
回复 使用道具 举报
本帖最后由 25343215 于 2013-12-2 17:52 编辑

楼主的问题,就是对多态还是不太熟悉:
多态:
        (1)同一个对象,在程序不同时刻的多种运行状态。举例:动物,狗是狗,狗是动物。水(气态,液态,固态)
        (2)多态前提
               A:存在着继承或者实现关系
               B:有方法的重写
               C:父类(接口)引用指向子类(实现)对象
        (3)多态的好处和弊端:
             好处:多态的存在提高了程序的扩展性和后期可维护性
             弊端:虽然可以预先使用,但是只能访问父类中已有的功能,运行的是后期子类的功能内容。
                      不能预先使用子类中定义的特有功能。
        (4)多态中对象调用成员的特点
          Fu f = new Zi();

          A:成员变量
              编译看左边,运行看左边
          B:成员方法
              编译看左边,运行看右边
          C:静态方法
              编译看左边,运行看左边
        (5)多态的思想
                指挥同一批对象做事情。举例:带兵打仗,下课等。

评分

参与人数 1技术分 +1 收起 理由
简★零度 + 1 赞一个!

查看全部评分

回复 使用道具 举报 2 0
建议你把毕老师多态那段复习一遍!
回复 使用道具 举报
父类引用子类对象
就是定义一个A类型的对象引用
只要是A类的子类所new的实体,都可以把这个实体地址赋给A类型引用。
运行时用子类构造方法初始化,A类型引用调用的只能是A类里面存在的方法。
运行时如果子类有同名方法,就执行子类的内容。

评分

参与人数 1黑马币 +3 收起 理由
简★零度 + 3

查看全部评分

回复 使用道具 举报
25343215 发表于 2013-12-2 17:49
楼主的问题,就是对多态还是不太熟悉:多态:        (1)同一个对象,在程序不同时刻的多种运行状态。举例 ...

真的很感谢你,我仔细研究了好半天,多少了解点嘿嘿!
回复 使用道具 举报
sd110572 发表于 2013-12-2 20:31
父类引用子类对象
就是定义一个A类型的对象引用
只要是A类的子类所new的实体,都可以把这个实体地址赋给A类 ...

嘻嘻总结的很实用!谢谢你
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马