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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanyoucheng520 中级黑马   /  2014-7-13 23:51  /  1034 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对象的向下转型:子类 子类对象=(子类)父类实例额,对于向下转型,只有这一种书写方式吗,我每次都记不住

2 个回复

倒序浏览
我理解是这样的        
Z z1 = new Z();
F f = z1;//想把这个对象当作父类对象用(和重写搭配=>多态) 就用向上转型
Z z2 = (Z)f;//想把这个对象当作子类对象用(需要用到子类特有成员时) 就用向下转型
回复 使用道具 举报
自己要知道为什么要使用类型的转换。
只有当父类对象指向了了该子类,才能将该类向下转型为该子类类型。
(说句通俗的就是,有个动物父类,猫、狗两子类,建立的动物是猫类型,只能将该动物向下转型成猫)
其实知道了在基本数据中有类型强制转换(这里我感觉是为了让数据间保持相同类型),后面说的这些都是引用数据类型。类型的转换,首先明确是建立是子类的对象,若用父类型的指向了他(多态体现),就相当于子类的向上转型。但要使用子类中的特有方法时候,只需要将该类还原出本来面貌(向下转型)就OK。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马