大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 編程基礎(chǔ)之Java中類(lèi)繼承、接口實(shí)現(xiàn)的一些細(xì)節(jié)

編程基礎(chǔ)之Java中類(lèi)繼承、接口實(shí)現(xiàn)的一些細(xì)節(jié)

更新時(shí)間:2020-07-16 16:21:54 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2254次

在Java中,子類(lèi)繼承父類(lèi),類(lèi)實(shí)現(xiàn)接口是屬于常識(shí)性的內(nèi)容了,作為一個(gè)Java程序員應(yīng)該也比較熟悉。不過(guò)子類(lèi)繼承父類(lèi),類(lèi)實(shí)現(xiàn)接口中還是有一些小細(xì)節(jié)值得注意一下,本文就從個(gè)人工作、學(xué)習(xí)中入手,總結(jié)一些細(xì)節(jié)性的內(nèi)容,以更進(jìn)一步地掌握繼承、實(shí)現(xiàn)的關(guān)系。現(xiàn)在只是寫(xiě)一些目前碰到的內(nèi)容,以后只要想到了、碰到了任何繼承、實(shí)現(xiàn)相關(guān)問(wèn)題,都會(huì)保持更新此文。

編程基礎(chǔ)之Java中類(lèi)繼承、接口實(shí)現(xiàn)的一些細(xì)節(jié)

接口A有void C()方法,接口B有int C()方法,則無(wú)法同時(shí)實(shí)現(xiàn)這兩個(gè)接口

Java為了彌補(bǔ)類(lèi)單繼承的不足,引入了類(lèi)多實(shí)現(xiàn)接口的機(jī)制,不過(guò)多實(shí)現(xiàn)某個(gè)接口也是有一定限制的,比如:

public?interface?A
{
?void?C();
}
public?interface?B
{
?int?C();
}

那么同時(shí)實(shí)現(xiàn)這兩個(gè)接口是不可能的:

編程基礎(chǔ)之Java中類(lèi)繼承、接口實(shí)現(xiàn)的一些細(xì)節(jié)

這個(gè)錯(cuò)誤是無(wú)法被修復(fù)的。試想,類(lèi)AB實(shí)現(xiàn)接口A和接口B,那么接口A里面的抽象方法和接口B里面的抽象方法參數(shù)列表都相同僅有返回值不同,類(lèi)AB應(yīng)該實(shí)現(xiàn)哪個(gè)呢?實(shí)現(xiàn)接口A的"void C()",那么接口B的"int C()"怎么辦?實(shí)現(xiàn)接口B的"int C()"那么接口A的"void C()"怎么辦?因?yàn)?quot;void C()"、"int C()"屬于方法參數(shù)相同,返回值不同,這兩個(gè)方法是不可以重載的,所以同時(shí)實(shí)現(xiàn)兩個(gè)方法也不可能。因此,在這里Java只能報(bào)錯(cuò)了。

A是接口,B實(shí)現(xiàn)A,C繼承B,則C也是A的子類(lèi)

有一個(gè)接口A,B實(shí)現(xiàn)了A接口,C繼承自B類(lèi),則C也是A的子類(lèi),看一下:

public?interface?A
{
}
public?class?B?implements?A
{
}
public?class?C?extends?B
{
}
public?static?void?main(String[]?args)
{
?C?c?=?new?C();
?System.out.println(c?instanceof?A);
}

返回結(jié)果是true。這是一個(gè)不難理解的結(jié)論,想到求證這個(gè)結(jié)論是因?yàn)橛幸淮卧谘芯縇inkedHashMap的時(shí)候:

public?class?LinkedHashMap
?extends?HashMap
?implements?Map

既然LinkedHashMap已經(jīng)繼承了HashMap了,HashMap是Map的實(shí)現(xiàn)類(lèi),那為什么LinkedHashMap還要實(shí)現(xiàn)Map呢,豈不是多此一舉嗎?由此想到了會(huì)不會(huì)是因?yàn)槔^承了HashMap不代表LinkedHashMap是Map的子類(lèi)所以LinkedHashMap要專門(mén)再實(shí)現(xiàn)一下Map,做了上面的實(shí)驗(yàn),發(fā)現(xiàn)是我多慮了,可能Sun的開(kāi)發(fā)人員就想這么寫(xiě)吧,呵呵。

父子類(lèi)中有同名屬性

這不是錯(cuò)誤,只是會(huì)造成歧義而已,而且也可能會(huì)造成返回我們不想要的結(jié)果,主要原因可能是開(kāi)發(fā)者對(duì)父類(lèi)代碼不熟悉所導(dǎo)致的(尤其是在父類(lèi)定義的屬性一大堆的場(chǎng)景下)。舉個(gè)例子:

public?class?Father
{
?private?int?i;?
?public?Father()
?{
?}
?public?Father(int?i)
?{
?this.i?=?i;
?}
?public?int?getFatherI()
?{
?return?i;
?}
}
public?class?Son?extends?Father
{
?private?int?i;
?
?public?Son(int?i)
?{
?super(100);
?this.i?=?i;
?}
?public?int?getSonI()
?{
?return?i;
?}
}
public?static?void?main(String[]?args)
{
?Son?son?=?new?Son(50);
?System.out.println("Son?getFatherI():"?+?son.getFatherI());
?System.out.println("Son?getSonI():"?+?son.getSonI());
}
運(yùn)行結(jié)果為:
Son getFatherI():100
Son getSonI():50

提出這個(gè)問(wèn)題是因?yàn)槲覀儞?dān)心父子類(lèi)的同名屬性會(huì)不會(huì)存在覆蓋的情況,從運(yùn)行結(jié)果來(lái)看,完全不用擔(dān)心這個(gè)問(wèn)題。

一個(gè)實(shí)現(xiàn)類(lèi)繼承自一個(gè)抽象類(lèi)并且實(shí)現(xiàn)了多個(gè)接口,那么必須實(shí)現(xiàn)所有未被實(shí)現(xiàn)的抽象方法

舉個(gè)例子:

public?interface?InterfaceA
{
?void?A1();
?void?A2();
}
public?interface?InterfaceB
{
?void?B1();
?void?B2();
}
public?abstract?class?AbstractC?implements?InterfaceA,?InterfaceB
{
?public?void?A1(){}?//?我實(shí)現(xiàn)了InterfaceA的A1()方法
?public?void?B2(){}?//?我實(shí)現(xiàn)了InterfaceB的B2()方法
?
?abstract?void?C();?//?我自己定義了一個(gè)抽象方法
}

那么要定義一個(gè)ClassD繼承自AbstractC,則必須:

public?class?ClassD?extends?AbstractC
{
?public?void?A2(){}?//?我必須實(shí)現(xiàn)InterfaceA中未被實(shí)現(xiàn)的A2()方法
?public?void?B1(){}?//?我必須實(shí)現(xiàn)InterfaceB中未被實(shí)現(xiàn)的B1()方法
?void?C(){}?//?我必須實(shí)現(xiàn)AbstractC中未被實(shí)現(xiàn)的C()方法
}

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)之Java中類(lèi)繼承、接口實(shí)現(xiàn)的一些細(xì)節(jié)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美精品视 | 一级淫片免费看 | 美女日日日 | 久热这里有精品 | 亚洲精品国产福利片 | 欧美夜夜撸 | 欧美日韩三区 | 免费人成黄页网站在线观看 | jizzjizzjizz孕妇| 欧美日韩在线网站 | 精品成人免费一区二区在线播放 | 精品无人区乱码一区2区3区 | 国内视频一区 | 99久久99这里只有免费费精品 | 色综合亚洲欧美在线 | 亚洲国产精品综合福利专区 | 亚洲精品福利一区二区 | 久久成人免费播放网站 | 国产级a爱做片免费观看 | 国产精品合集久久久久青苹果 | 超级乱淫视频aⅴ播放视频 超级乱淫视频播放日韩 | 亚洲国产成人麻豆精品 | 尤物福利 | 美女在线国产 | 天天做天天干 | 国产欧美二区 | 日韩爱爱小视频 | 久久中国 | 久久国产精品自由自在 | 日本a∨在线| 99久久久| 欧美激情亚洲激情 | 亚洲图片另类图片 | 成年女人毛片免费播放视频m | 色吧综合网 | 九九热热九九 | 国产精品亚洲片在线观看麻豆 | 日韩欧美在| 按摩一级片 | 一级毛片免费视频观看 | 狠狠色噜噜狠狠狠狠色综合久 |