向下轉型:子類引用指向父類引用的子類物件,有點抽象,下面會舉個例子;
向上轉型:父類引用指向子類的物件時稱為向上轉型;
employee employee=new manager();//向上轉型
manager manager=(manager)employee;//向下轉型
//編譯、執行通過,因為employee本來指向的就是manager物件
employee employee=new employee();
manager manager=(manager)employee;
//編譯可以通過但是執行會出現乙個classcastexception的錯誤
歸納:
1。父類引用指向子類物件,而子類引用不能指向父類物件。
2。把子類物件直接賦給父類引用叫upcasting向上轉型,向上轉型不用強制轉換。
如:employee employee=new manager();
3。把指向子類物件的父類引用賦給子類引用叫向下轉型(downcasting),要強制轉換。
如:manager manager=(manager)employee;
其中employee前面的(manager)必須加上,進行強制轉換。
好處:
向上轉型有利於實現動態繫結,具體的優勢還是要在**中實現,這裡就不細說了。
java中向上轉型和向下轉型
轉型是在繼承的基礎上而言的,繼承是物件導向語言中,復用的一種機制,通過繼承,子類可以復用父類的功能,如果父類不能滿足當前子類的需求,則子類可以重寫父類中的方法來加以擴充套件。向上轉型 子類引用的物件轉換為父類型別稱為向上轉型。通俗地說就是是將子類物件轉為父類物件。此處父類物件可以是介面 向下轉型 父...
java向上轉型和向下轉型
向上轉型 類a繼承類supera,類 執行suppera a new a 其實這個時候a的型別還是a而不是suppera,但是這個時候a只能使用suppera中的方法 向下轉型 分兩種1 類a繼承類supera,類 執行suppera a new a a aa a a 這個時候aa的型別是a而且可以...
Java的向上轉型和向下轉型
開源共享 名詞 向上轉型 upcasting 和向下轉型 downcasting 例1 有兩個類,father父類 son子類繼承自父類father father fr new son 這樣把子類物件son 直接賦給父類引用fr叫向上轉型 upcasting 這裡fr引用指向的是son物件。son ...