Java中類的繼承
繼承是面向?qū)ο笕筇卣髦?,三大特征分別為封裝、繼承、多態(tài)
繼承的基本作用是:代碼復(fù)用。有了繼承之后才有“方法覆蓋”和“多態(tài)機(jī)制”。
繼承語(yǔ)法格式:
【修飾符列表】class類名extends父類名{
類體=屬性+方法
}
java中只支持單繼承,一個(gè)類只能繼承一個(gè)類,不能同時(shí)繼承多個(gè)類。
子類繼承父類
子類、派生類——subclass
父類、基類、超類——superclass
子類繼承父類哪些數(shù)據(jù)?
——私有的不支持繼承
——構(gòu)造方法不支持繼承
——其他數(shù)據(jù)都可被繼承
public?class?Inherit?{private?String?name;?????????//用于繼承public?Inherit(){????????this(null);????}????public?Inherit(String?name)?{????????this.name?=?name;????}????public?String?getName()?{????????return?name;????}????public?void?setName(String?name)?{????????this.name?=?name;????}}public?class?InheritTest?extends?Inherit{???//繼承了Inherit中的getname和setname方法}public?class?Test?{????public?static?void?main(String[]?args){????????InheritTest?i?=?new?InheritTest(); ????????i.setName("jack"); //通過(guò)InheritTest類來(lái)調(diào)用Inherit類的setname和getname方法????????System.out.println(i.getName()); }}
雖然java中只支持單繼承,但一個(gè)類可間接繼承其他類,如:
C extends B{}B extends A{}A extends T{}
C類直接繼承B類,間接繼承A、T類
在測(cè)試?yán)^承的時(shí)候出現(xiàn)了 ‘InheritTest.this’ cannot be referenced from a static context 的問(wèn)題,這屬于內(nèi)部類調(diào)用問(wèn)題,因?yàn)榉庆o態(tài)變量類型不能在靜態(tài)上下文中引用。將內(nèi)部類改為static,問(wèn)題解決。
public?class?InheritTest{????public?static?void?main(String[]?args){????????C?c?=?new?C();????????c.dosome();????}????static?class?A?{????????public?void?dosome(){????????????System.out.println("調(diào)用了該方法11");????????}????}????static?class?B?extends?A{????????public?void?dosome(){????????????System.out.println("調(diào)用了該方法22");????????}????}????static?class?C?extends?B{????}}//運(yùn)行結(jié)果:調(diào)用了該方法22Process?finished?with?exit?code?0
假設(shè)一個(gè)類沒(méi)有顯示繼承任何類,該類默認(rèn)繼承javaSE庫(kù)中的java.lang.Object類
(補(bǔ)充)如果父類實(shí)現(xiàn)了某一個(gè)接口,則子類繼承父類會(huì)自動(dòng)實(shí)現(xiàn)這個(gè)接口,已經(jīng)實(shí)現(xiàn)的方法也會(huì)繼承過(guò)來(lái);如果父類是個(gè)抽象類,則需要子類重寫實(shí)現(xiàn)接口的方法。
以上就是長(zhǎng)沙一度軟件培訓(xùn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“初學(xué)者需要學(xué)會(huì)的Java繼承類”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。