天天看點

多态概述

同一個對象,在不同時刻表現出來的不同形态

舉例:貓

我們可以說貓是貓:貓cat = new貓();

我們也可以說貓是動物:動物animal = new貓();

這裡貓在不同的時刻表現出來了不同的形态,這就是多态

繼承

重寫

父類引用指向子類對象:Parent p = new Child();

多态概述
成員變量: 編譯看左邊,執行看左邊 成員方法: 編譯看左邊,執行看右邊 靜态方法:編譯和運作都看等号左邊

為什麼成員變量和成員方法的通路不- -樣呢?

因為成員方法有重寫, 而成員變量沒有

當使用多态方式調用方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤;如果有,再去調用子類的同名方法。

多态的好處: 提高了程式的擴充性

具體展現:定方法的時候,使用父類型作為參數,将來在使用的時候,使用具體的子類型參與操作

多态的弊端: 不能使用子類的特有功能

解決了多态的弊端

向上轉型

從子到父

父類引用指向子類對象

向下轉型

從父到子

父類引用轉為子類對象