繼承
1.繼承的概念:
繼承是類與類的一種關(guān)系,是一種“is a”的關(guān)系;
注:java中的繼承是單繼承;
2.繼承的好處:
子類擁有父類的所有屬性和方法;
實(shí)現(xiàn)代碼復(fù)用;
3.語(yǔ)法規(guī)則:
class 子類 extends父類
例:
class Dog extends Animal{
...
}
方法的重寫:
如果子類對(duì)繼承父類的方法不滿意,是可以重寫父類繼承的方法的,當(dāng)調(diào)用方法時(shí)會(huì)優(yōu)先調(diào)用子類的方法。
語(yǔ)法規(guī)則:
a.返回值類型
b.方法名
c.參數(shù)類型及個(gè)數(shù)
都要與父類繼承的方法相同,才叫方法的重寫。
繼承的初始化順序;
1.初始化父類再初始化子類;
2.先執(zhí)行初始化對(duì)象中的屬性,再執(zhí)行構(gòu)造方法中的初始化;
具體:
先執(zhí)行父類的屬性初始化,再執(zhí)行父類的構(gòu)造方法,再執(zhí)行子類的屬性初始化,最后執(zhí)行子類的構(gòu)造方法;
final關(guān)鍵字:
使用final關(guān)鍵字做標(biāo)識(shí)有‘最終的“含義;
final可以修飾類,方法,屬性,變量;
final修飾類時(shí),類不可以被繼承;
final修飾方法時(shí),方法不可以被覆蓋(重寫);
final修飾屬性時(shí),則該類的屬性不會(huì)進(jìn)行隱式的初始化(類的初始化屬性必須有值)或在構(gòu)造方法中賦值(二者只能選其一);
final修飾變量,變量只能賦一次值,即變成常量;
super關(guān)鍵字:
在對(duì)象的內(nèi)部使用,可以代表父類對(duì)象。
1.訪問(wèn)父類的屬性
super.age
2.訪問(wèn)父類的方法
super.eat()
super的應(yīng)用
子類的構(gòu)造的過(guò)程當(dāng)中必須調(diào)用其父類的構(gòu)造方法;
如果子類的構(gòu)造方法中沒(méi)有顯示調(diào)用父類的構(gòu)造方法,則系統(tǒng)默認(rèn)調(diào)用父類無(wú)參的構(gòu)造方法。
如果顯示的調(diào)用構(gòu)造方法,必須在子類的構(gòu)造方法的第一行。
如果子類構(gòu)造方法中既沒(méi)有顯式調(diào)用父類的構(gòu)造方法,而父類又沒(méi)有無(wú)參的構(gòu)造方法,則編譯出錯(cuò);
Object 類
Object是所有類的父類,如果一個(gè)類沒(méi)有使用extends關(guān)鍵字明確標(biāo)識(shí)繼承另外一個(gè)類,那么這個(gè)類默認(rèn)繼承Object類;
Object類中的方法,適合所有子類;?
1.toString () 方法:
在Object類里定義toString ()方法的時(shí)候返回的對(duì)象的哈希code碼(對(duì)象地址字符串)
可以通過(guò)重寫toString() 方法表示出對(duì)象的屬性;
equals()方法:
比較的是對(duì)象的引用是否指向同一塊地址。
Dog dog=new Dog()
一般情況下比較兩個(gè)對(duì)象時(shí)比較他們的值是否一致,所以要進(jìn)行重寫。
這章知識(shí)點(diǎn)很多,需要仔細(xì)學(xué)習(xí),感謝慕課網(wǎng)