繼承:1:實(shí)現(xiàn)了代碼的復(fù)用 ?2:使類(lèi)與類(lèi)之間產(chǎn)生了父子關(guān)系
java繼承的特點(diǎn):
1:java繼承和OC是單繼承 ?(多繼承的問(wèn)題父類(lèi)里的方法有可能一樣,之類(lèi)調(diào)用時(shí)沒(méi)辦法確定調(diào)用哪個(gè)方法,即調(diào)用方法的不確定性)
2:可以多層繼承
繼承的使用:
當(dāng)事物之間存在所屬關(guān)系,是同類(lèi)的類(lèi),如人不能繼承動(dòng)物
extends是java類(lèi)繼承關(guān)鍵字
class Super{
child1和child2共有的成員變量和函數(shù)
}
class Child1 extends Super{
}
class Child2 extends Super{
}
super:不是引用,當(dāng)子父類(lèi)出現(xiàn)同名的成員變量時(shí),用于區(qū)分子父類(lèi)中的成員變量
繼承中成員變量的特性:
1父類(lèi)中的成員變量用private修飾時(shí),子類(lèi)沒(méi)辦法直接訪問(wèn)可以在父類(lèi)中提供setter和getter進(jìn)行讀取;
2:當(dāng)子父類(lèi)出現(xiàn)同名的成員變量時(shí),可用super關(guān)鍵字用于區(qū)分子父類(lèi)中的成員變量
繼承中的成員函數(shù)的特性:
重寫(xiě):子類(lèi)在繼承父類(lèi)時(shí),含有和父類(lèi)中的一樣的函數(shù),當(dāng)創(chuàng)建子類(lèi)對(duì)象時(shí),執(zhí)行的是重寫(xiě)之后的方法 可以在子類(lèi)方法中用super.類(lèi)名(參數(shù))調(diào)用父類(lèi)中的方法(重寫(xiě)的好處:覆蓋父類(lèi)中的方法,沿襲了父類(lèi)的功能,改變了具體的方式super.類(lèi)名(參數(shù))),
注意(1子類(lèi)再重寫(xiě)時(shí),權(quán)限要大于等于父類(lèi)中的方法的權(quán)限;2父類(lèi)中私有的方法不能被子類(lèi)重寫(xiě);3:靜態(tài)只能覆蓋靜態(tài);4:當(dāng)父類(lèi)中的方法的返回值是引用類(lèi)型時(shí),子類(lèi)在重寫(xiě)時(shí)返回值類(lèi)型可以是父類(lèi)中方法中的方法的返回值類(lèi)型,也可以是其子類(lèi)類(lèi)型)
繼承中的構(gòu)造函數(shù)的特性:
特點(diǎn):在創(chuàng)建子類(lèi)對(duì)象時(shí),先調(diào)用父類(lèi)的構(gòu)造函數(shù)方法,再調(diào)用子類(lèi)的構(gòu)造函數(shù)方法,因?yàn)橄到y(tǒng)自動(dòng)在子類(lèi)的構(gòu)造函數(shù)的第一行加入了super() ?
注意:如果父類(lèi)中沒(méi)有無(wú)參的構(gòu)造函數(shù)時(shí),必須在子類(lèi)的第一行手動(dòng)加入super語(yǔ)句,,調(diào)用父類(lèi)的某個(gè)構(gòu)造函數(shù)