java中的向上轉型和向下轉型

2021-08-02 19:21:28 字數 695 閱讀 4702

向下轉型:子類引用指向父類引用的子類物件,有點抽象,下面會舉個例子;

向上轉型:父類引用指向子類的物件時稱為向上轉型;

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 ...