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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 247033993@qq.co 中级黑马   /  2014-5-23 17:32  /  916 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java的多态性主要体现在两个方面:
1、方法的覆写和重载
2、对象的多态性
而对象的多态性又分为向上转型和向下转型
向上转型的格式:
父类 父类对象=子类实例;
向下转型的格式:
子类 子类对象=(子类) 父类实例;

再来说说为什么向上转型是自动完成,而向下转型是需要强类型转换的:
对象的多态性主要是子类和父类之间(也就是发生在继承的基础之上的),因为父类的属性和方法会被子类继承(当然私有的属性和方法除外),那么发生向上转型时候,当然是可以完成的,父类所需要的一些方法或者属性,子类都能够满足,所以是自动完成的;
有了这些,就不难理解为什么向下转型是需要强类型转换的:
因为子类不仅继承了父类的方法和属性,也会有自己的一些扩展(有自己的方法和属性),所以子类通过父类实例化。父类不一定满足子类所有需求,这就需要强类型转换

以上纯粹为个人理解,不当之处,各位帮忙纠正下,谢谢!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马