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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vipzh 中级黑马   /  2012-12-7 12:59  /  1315 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

父类对象与子类对象相互转化的条件是什么?如何实现它们的相互转化?

3 个回复

倒序浏览
父类可以接收它的子类对象,不需要转换。

如果一个父类里面装的是子类对象,就要进行强制转换成子类,如:

子类  对象  =  (子类)父类对象;
回复 使用道具 举报
一个男人肯定也是人,一个人却不一定是男人的道理,就非常容易理解父类和子类之间的转换关系了。
回复 使用道具 举报
为实现java运行时绑定的多态性,以父类引用指向子类对象
Parent p = new Son()  
这样做的好处是代码扩展性强,耦合性低。比如一个方法接受Parent的参数类型,那么我们可以再调用方法的时候传递任何一个继承了Parent类型的子类对象作为实参。这样就实现了运行时绑定。
但是,在这种情况下,我们只能通过p调用父类的方法,而不能调用子类的特有方法。所以如果我们想调用子类的特有方法的话就要通过强制类型转换来实现。

((Son)p).s1() 或 Son s = (Son)p  
这就是父类和子类的类型转换存在的意义。
还有另外一种情况,就是将父类引用指向父类对象,而后将父类引用强制转换为子类引用

Parent p = new Parent();  
on s = (Son)p;
java的开发者认为这样毫无意义,所以在开发过程中我们不能这样做,JVM会包类型转换错误的异常。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马