java--深入瞭解面向對象三大特徵之一:多態

多態的定義與使用格式

多態就是父類的引用變量指向子類對象
格式:
父類類型 變量名 = new 子類類型();
調用方法:
類名字.變量名();

普通類多態定義的格式:
父類 變量名 = new 子類();

抽象類多態定義的格式:
抽象類 變量名 = new 抽象類子類();

接口多態定義的格式:
接口 變量名 = new 接口實現類();

在這裏插入圖片描述

多態-成員的特點

成員變量看父類,成員方法看子類
在這裏插入圖片描述

多態-轉型

多態的轉型分爲向上轉型與向下轉型兩種:
向上轉型:當有子類對象賦值給一個父類引用時,便是向上轉型,多態本身就是向上轉型的過程。
使用格式:
父類類型 變量名 = new 子類類型();
在這裏插入圖片描述
向下轉型:一個已經向上轉型的子類對象可以使用強制類型轉換的格式,將父類引用轉爲子類引用,這個過程是向下轉型。如果是直接創建父類對象,是無法向下轉型的!
使用格式:
子類類型 變量名 = (子類類型) 父類類型的變量;
在這裏插入圖片描述

多態的好處與弊端

當父類的引用指向子類對象時,就發生了向上轉型,即把子類類型對象轉成了父類類型。向上轉型的好處是隱藏了子類類型,提高了代碼的擴展性。
小結:
但向上轉型也有弊端,只能使用父類共性的內容,而無法使用子類特有功能,功能有限制。我什麼時候使用向上轉型:
當不需要面對子類類型時,通過提高擴展性,或者使用父類的功能就能完成相應的操作,這時就可以使用向上轉型。
什麼時候使用向下轉型
當要使用子類特有功能時,就需要使用向下轉型。

向下轉型的好處:可以使用子類特有功能。
弊端是:需要面對具體的子類對象;在向下轉型時容易發生ClassCastException類型轉換異常。在轉換之前必須做類型判斷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章