一、向上轉型
簡單的說向.上轉型就是:將-一個子型別別的物件賦值給- -個父型別別的變數,
基本的實作語法:
父型別別變數=new 子 型別別();
DEMO:向上轉型





發現了可以使用父型別別的變數呼叫子類覆寫了父類的方法,但是為什么不呼叫Worker的say()方法呢?原因是具體呼叫哪一個子類覆寫的方法是在運行期間根據具體你賦值的子類來確定的,
思考:在之前我們說過,子類出了可以繼承父類的成員方法和變數還可以擴充屬于自己的新的操作,那么可以使用父型別別的變數呼叫子類新擴充的方法嗎?
DEMO:呼叫子類新擴充的方法


發現了不能使用父型別別的變數呼叫子類新擴充的方法,如果要實作呼叫可以使用向下轉型,將一個父型別別的變數強制轉換為子型別別,具體的實作語法:


但是向下轉型會存在風險,存在型別轉換例外的風險,
二:向下轉型
簡單的說向上轉型就是:將一個父型別別的變數強制轉換為子型別別,具體的實作語法:

DEMO:向下轉型

發現了實作向下轉型必須先向,上轉型,但是向下轉型作用不大,只是作為知識點提出,向下轉型還存在型別轉換例外的風險,
向下轉型用得不多,你知道這個概念就行,但是你要記住這個例外(ClassCastException),其實也可以在代碼中防止這樣的例外,
DEMO:防止例外的出現


雖然可以使用instanceof關鍵字防止型別轉換例外的出現,但是沒事干別向下轉型,
有完整的Java初級,高級對應的學習路線和資料!專注于java開發,分享java基礎、原理性知識、JavaWeb實戰、spring全家桶、設計模式、分布式及面試資料、開源專案,助力開發者成長!
歡迎關注微信公眾號:碼邦主

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/243107.html
標籤:Java
上一篇:JVM,JRE,JDK概述
下一篇:練習maven創建專案
