首页 > Java > Java基础 > 正文

java中父类与子类之间的转换问题

王林
发布: 2019-12-17 11:55:54
转载
3740 人浏览过

java中父类与子类之间的转换问题

示例一

父类强制转子类

Father f = new Father();
Son s = (Father)f;//出错 ClassCastException
登录后复制

分析:

创建一个父类的实例,想要强制把父类对象转换成子类的,不行!通俗的想,真正当爹的永远不可能装儿子。

在线学习视频教程分享:java在线教程

示例二

“假的”父类强制转子类

Father f = new Son();
Son s = (Son)f;//可以
登录后复制

分析:

父类对象引用着一个子类实例。

Son类特有的属性暂时不能通过 f 来操作,因为Father类没有Son类(子类)的特有属性。

接着创建子类对象 s,它引用的是父类对象 f 强制转换来的对象(其实就是个装爹的Son,把他强制转回了Son),这时就可以通过 s 来操作子类的特有属性了。

通俗的说就是儿子装爹,终究是儿子,本质没变,还是可以把他强制转回儿子的。

示例三

子类强制转父类

Son s = new Son();
Father f = (Father)s;//可以
登录后复制

分析:

子类转换成父类,只是子类对象的特有属性无法利用 f 操作,f 可以操作其非特有的属性(由父类继承而来的属性)。

通俗的说,儿子和爹的共同点——“都是人”,儿子是人是从父亲继承而来的,他们都有人的基本行为,只是儿子永远不可能和父亲平辈(子类类型转换成父类类型)。

相关文章教程推荐:java快速入门

以上是java中父类与子类之间的转换问题的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:csdn.net
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!