範例一
父類別強制轉子類別
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中文網其他相關文章!