- 子類中所有的構(gòu)造方法默認(rèn)都會訪問父類中空參數(shù)的構(gòu)造方法
- 因?yàn)樽宇悤^承父類中的數(shù)據(jù),可能還會使用父類的數(shù)據(jù)。
- 所以,子類初始化之前,一定要先完成父類數(shù)據(jù)的初始化。
- 其實(shí):
- 每一個構(gòu)造方法的第一條語句默認(rèn)都是:super() Object類最頂層的父類。
- 子類有參構(gòu)造會調(diào)用父類有參構(gòu)造。
- 重寫:子父類出現(xiàn)了一模一樣的方法(注意:返回值類型可以是子父類,這個我們學(xué)完面向?qū)ο笾v)
- B:方法重寫的應(yīng)用:
- 當(dāng)子類需要父類的功能,而功能主體子類有自己特有內(nèi)容時,可以重寫父類中的方法。這樣,即沿襲了父類的功能,又定義了子類特有的內(nèi)容。
public void eat(){
super.eat();//調(diào)用父類的重寫方法
System.out.println("Dog eat");
}
08.14_面向?qū)ο?方法重寫的注意事項(xiàng))(掌握)
- A:方法重寫注意事項(xiàng)
- a:父類中私有方法不能被重寫
- 因?yàn)楦割愃接蟹椒ㄗ宇惛揪蜔o法繼承
- b:子類重寫父類方法時,訪問權(quán)限不能更低
- 最好就一致
- c:父類靜態(tài)方法,子類也必須通過靜態(tài)方法進(jìn)行重寫
- 其實(shí)這個算不上方法重寫,但是現(xiàn)象確實(shí)如此,至于為什么算不上方法重寫,多態(tài)中我會講解(靜態(tài)只能覆蓋靜態(tài))
- 子類重寫父類方法的時候,最好聲明一模一樣。
- a:父類中私有方法不能被重寫
final 關(guān)鍵字
- final修飾特點(diǎn)
- 修飾類,類不能被繼承
- 修飾變量,變量就變成了常量,只能被賦值一次,*一般與public與static共用
- 修飾方法,方法不能被重寫
- 基本類型,是值不能被改變
- 引用類型,是
地址值
不能被改變,對象中的屬性可以改變