黑马程序员技术交流社区
标题:
对象的多态性
[打印本页]
作者:
yanyoucheng520
时间:
2014-7-13 23:51
标题:
对象的多态性
对象的向下转型:子类 子类对象=(子类)父类实例额,对于向下转型,只有这一种书写方式吗,我每次都记不住
作者:
郑飞
时间:
2014-7-14 18:50
我理解是这样的
Z z1 = new Z();
F f = z1;//想把这个对象当作父类对象用(和重写搭配=>多态) 就用向上转型
Z z2 = (Z)f;//想把这个对象当作子类对象用(需要用到子类特有成员时) 就用向下转型
作者:
hejinzhong
时间:
2014-7-14 19:27
自己要知道为什么要使用类型的转换。
只有当父类对象指向了了该子类,才能将该类向下转型为该子类类型。
(说句通俗的就是,有个动物父类,猫、狗两子类,建立的动物是猫类型,只能将该动物向下转型成猫)
其实知道了在基本数据中有类型强制转换(这里我感觉是为了让数据间保持相同类型),后面说的这些都是引用数据类型。类型的转换,首先明确是建立是子类的对象,若用父类型的指向了他(多态体现),就相当于子类的向上转型。但要使用子类中的特有方法时候,只需要将该类还原出本来面貌(向下转型)就OK。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2