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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gqx1990 中级黑马   /  2016-8-26 23:07  /  481 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

引用类型转换的问题:
向上转型:
        说明:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。
        格式:Person p = new Student();
        小的赋值给大的类型  需要类型提升
        好处:向上转型的好处是隐藏了子类类型,提高了代码的扩展性。
        弊端:只能使用父类共性的内容,而无法使用子类特有功能,功能有限制。
向下转型:
        说明:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型。如果是直接创建父类对象,是无法向下转型的!
        格式:Student s = (Student)p;
        把刚才的父类(父接口)引用强转成其对应的子类类型。
        备注:Cat c = (Cat)a2;  Cat c = (Cat) a2;  有无空格都可
总结:
        什么时候使用向上转型:当不需要面对子类类型时,通过提高扩展性,或者使用父类的功能就能完成相应的操作,这时就可以使用向上转型。
        什么时候使用向下转型:当要使用子类特有功能时,就需要使用向下转型。

2 个回复

倒序浏览
赞一个, 楼主总结的不错~
回复 使用道具 举报
很详尽,非常好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马