1、繼承
一、概念
子類的共性
重用現有類並在此基礎上進行擴展
public class 子類 extends 父類{}
二、繼承中的成員訪問
成員變量 |
成員方法 |
局部->本類中成員變量->父類中非私有成員變量 |
本類中方法->父類中非私有成員方法->object基類中非私有成員方法 |
三、方法重寫
(1)、爲何要重寫
父類的方法不能知足咱們的需求,咱們須要進行擴展。
(2)、怎麼進行重寫
子類中的方法名、方法權限、方法形參和父類同樣,此時就產生了重寫
(3)、重寫的注意點
(1)子類只能重寫父類的非私有方法。
(2)子類重寫的方法權限要大於等於父類,爲了不出錯,最好採用同樣
(3)權限類型:public>protected>默認>pravite
(4)@Override 註解:標記一個方法,表面該方法爲重寫父類
四、this和super
(1)、this
this表示的是對象的引用
三、super
表示父類的引用
super.name//父類的name
super();//父類構造函數,用於子類的構造函數第一步
super.buy();//父類的buy方法
五、繼承優缺點
優勢:隔離了用和作,在必定程度上增長了代碼的複用性(可是不建議用繼承來提升複用性,能夠用關聯或者依賴)
缺點:增長了程序的耦合性。
2、多態
調用父類的方法執行子類的方法。
父類的行爲在不一樣的子類上有不一樣的體現
一、多態前提
繼承
方法重寫
父類引用指向子類
二、成員訪問
成員變量 |
成員方法 |
編譯父類,執行子類,沒有報錯 |
編譯父類,執行子類,子類沒有執行父類,父類沒有報錯 |
三、優缺點
優勢:代碼複用性,擴展性
缺點:不能使用子類的特有成員
四、轉型
(1)、向上轉型,父類引用指向子類
(2)、向下轉型,父類類型轉變爲子類,強行轉換