示例一
父类强迫转子类
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中父类与子类之间的转换问题的细致内容,更多请关注ki4网别的相干文章!