面向對象三大特徵之一多態

一.什麼是多態?

一個對象有不同的形態。
比如:每個人在不同的場景有着不同的身份

二.使用多態的前提(重點)?

  • 子父類繼承關係。
  • 接口實現關係。
  • 必須有方法的重寫。
  • 父類引用指向子類對象(父類 對象名 = new 子類())。

三.注意!

多態在默認情況下只能調用子類重寫的方法,不能調用子類特有方法。

四.多態成員變量的訪問特點!

等號左邊是誰就調用誰的成員變量

五.多態成員方法的訪問特點!

看new的是誰就調用誰的成員方法(一定是子類重寫的!不能是子類特有的方法!!!!!!!)。

六.爲什麼要用多態?

那我們爲什麼要用多態呢??
多態的好處不是體現在new對象的,而是體現在方法的參數傳遞上(參數爲父類類型,接受任何它的子類)。

原始方法:類名 對象名 = new 類名(); — 等號兩邊是一樣的。
原始方法的好處:即可以調重寫的,還可以調子類特有的方法!
原始方法的壞處:擴展性差–體現在方法參數上!

多態方式:父類引用指向子類對象。
多態方法的壞處:不能直接調用子類特有的方法。
多態方法的好處:擴展性強!

七.多態的轉型

1.向上轉型

1.定義格式

父類 對象名 = new 子類()----默認的。

2.向上轉型的壞處:不能調用子類特有方法。

2.向下轉型(強轉)

1.定義格式

子類 對象名 = (子類)父類。

2.向下轉型的好處:能調用子類特有方法。
3.向下轉型的問題:容易出現轉型失敗的問題。classCastException
4.向下轉型問題解決:對象名 insetanceof 類名 -->判斷前面的對象是不是屬於後面的類

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