初學(xué)者需要學(xué)會(huì)的Java繼承類

初學(xué)者需要學(xué)會(huì)的Java繼承類

長(zhǎng)沙一度軟件培訓(xùn)      2022-05-07 05:49:01     93

初學(xué)者需要學(xué)會(huì)的Java繼承類,Java中類的繼承繼承是面向?qū)ο笕筇卣髦唬筇卣鞣謩e為封裝、繼承、多態(tài)繼承的基本作用是:代碼復(fù)用。有了繼承之后才有方法

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

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ù)。

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過(guò)大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。