多態的實質、利弊、使用條件、類型、instanceof

1、實質

一個事物有多種狀態。
eg:狗的吃,既屬於狗的功能也是屬於動物的功能。(一個對象有兩種類型)

2、好處

提高了代碼的擴展性,前期定義的代碼可以使用後期的內容。

3、弊端

前期定義的內容不能使用後期的特有的功能

4、條件

(1)必須有關係,繼承、實現
(2)必須有覆蓋

5、向上轉型

(1)自動類型提升,將子類提升爲父類
animal a=new cat();
產生了侷限性,此時cat的特有功能不能被訪問
(2) 作用:可以限制對特有功能的訪問

如果還要用cat的具體 功能呢?向下轉型

6、向下轉型

cat c=(cat) a;
將animal a轉換成c
作用:使用子類中特有的功能

對於轉型,自始至終都是子類對象做着變化。

7、instanceof

  用於判斷對象的具體類型,只能使用在引用數據類型的判斷。

eg:

if (a instanceof catps.   cat處可以使對象也可以是接口
{
       cat c=(cat) a;
       c.catchmouse();
}
發佈了19 篇原創文章 · 獲贊 36 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章