一、向上轉型
簡單的說向.上轉型就是:將-一個子類類型的對象賦值給- -個父類類型的變量,
基本的實現語法:
父類類型變量=new 子 類類型();
DEMO:向上轉型
發現了可以使用父類類型的變量調用子類覆寫了父類的方法,但是為什么不調用Worker的say()方法呢?原因是具體調用哪一個子類覆寫的方法是在運行期間根據具體你賦值的子類來確定的。
思考:在之前我們說過,子類出了可以繼承父類的成員方法和變量還可以擴充屬於自己的新的操作,那么可以使用父類類型的變量調用子類新擴充的方法嗎?
DEMO:調用子類新擴充的方法
發現了不能使用父類類型的變量調用子類新擴充的方法,如果要實現調用可以使用向下轉型。將一個父類類型的變量強制轉換為子類類型。具體的實現語法:
但是向下轉型會存在風險,存在類型轉換異常的風險。
二:向下轉型
簡單的說向上轉型就是:將一個父類類型的變量強制轉換為子類類型。具體的實現語法:
DEMO:向下轉型
發現了實現向下轉型必須先向,上轉型,但是向下轉型作用不大,只是作為知識點提出,向下轉型還存在類型轉換異常的風險。
向下轉型用得不多,你知道這個概念就行,但是你要記住這個異常(ClassCastException)。其實也可以在代碼中防止這樣的異常。
DEMO:防止異常的出現
雖然可以使用instanceof關鍵字防止類型轉換異常的出現,但是沒事干別向下轉型。
有完整的Java初級,高級對應的學習路線和資料!專注於java開發。分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分布式及面試資料、開源項目,助力開發者成長!
歡迎關注微信公眾號:碼邦主