重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
示例一
创新互联是一家集网站建设,长白企业网站建设,长白品牌网站建设,网站定制,长白网站建设报价,网络营销,网络优化,长白网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。父类强制转子类
Father f = new Father(); Son s = (Father)f;//出错 ClassCastException
分析:
创建一个父类的实例,想要强制把父类对象转换成子类的,不行!通俗的想,真正当爹的永远不可能装儿子。
示例二
“假的”父类强制转子类
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中父类与子类之间的转换问题的详细内容,更多请关注创新互联其它相关文章!