java中extends和implements有優(yōu)先級嗎?你是否了解它們同時存在時有什么影響?
在Java中,extends表示繼承的意思,子類擁有父類非 private 的屬性、方法。implements表示接口的實現(xiàn),當(dāng)類實現(xiàn)接口的時候,類要實現(xiàn)接口中所有的方法。否則,類必須聲明為抽象的類。
當(dāng)出現(xiàn)下面的情況,extends和implements的優(yōu)先級哪個高?是BoyPeople繼承了(GirlPeople implements People)還是(BoyPeople繼承GrilPeople)后implements People?
public class BoyPeople extends GirlPeople implements People
對這個問題,我們通過一個例子來說明:
背景介紹,先介紹已有的類、接口、抽象類:
首先定義一個接口:

接口定義
然后定義一個抽象類實現(xiàn)接口,由于GirlPeople是抽象類,所以可以不用實現(xiàn)所有的接口方法:

定義抽象類實現(xiàn)接口
定義一個男孩實體類,繼承抽象類,并實現(xiàn)接口:

實體類
定義一個女漢子的實體類,繼承抽象類,并實現(xiàn)接口:

女漢子實體類
問題描述:
BoyPeople與TomBoy一樣,都是繼承了GirlPeople,并實現(xiàn)People。
這個時候,如果在People中增加一個方法。那么其他類該如何修改才能正確編譯和運行?
原理分析:
1、People接口定義了三個方法
2、GirlPeople是抽象方法,實現(xiàn)了接口。因為它是抽象的,所以可實現(xiàn)接口中的部分方法。
3、TomBoy繼承了GirlPeople并實現(xiàn)接口People。 People中的三個方法,TomBoy可以通過繼承的方式從GirlPeople實現(xiàn),也可以自己實現(xiàn),但必須全部實現(xiàn)。
實驗結(jié)果:
BoyPeople與TomBoy一樣,都是繼承了GirlPeople,并實現(xiàn)People。
這個時候,如果在People中增加一個方法。則,需要修改GirlPeople增加這個方法的實現(xiàn)?;蛘叻謩e在BoyPeople和Tomboy中都實現(xiàn)新增的方法
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2705686032@qq.com 舉報,一經(jīng)查實,本站將立刻刪除。原文轉(zhuǎn)載: 原文出處: