大战熟女丰满人妻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ù)文檔推薦 >>
主站蜘蛛池模板: 国产精品久久福利新婚之夜 | 国产午夜亚洲精品不卡福利 | 国产福利一区二区精品视频 | 香蕉人在线香蕉人在线 | 亚洲一区二区欧美 | 成人永久福利在线观看不卡 | 欧美日韩国产在线 | 国产精品毛片久久久久久久 | 美女被cao的视频免费看 | 久久天天躁狠狠躁夜夜 | 夜夜爽天天狠狠九月婷婷 | 久久er热在这里只有精品85 | 四虎免费永久在线播放 | 曰批免费视频播放在线看片二 | 在线观看 日韩 | 欧美亚洲另类视频 | 女人十八毛片一级毛片免费看 | 欧美成人性色生活片天天看 | 日韩中文字幕在线有码视频网 | 国产成人精品视频播放 | 国产欧美在线观看 | 欧美在线看片 | 亚洲在线视频免费观看 | 精品亚洲一区二区三区在线播放 | 欧美激情区 | 欧美成人一区二区三区在线电影 | 成人 日韩 在线 | 在线不卡福利 | 日韩毛片免费看 | 欧美在线色视频 | 久久99热久久精品在线6 | 不卡一级aaa全黄毛片 | 国产色婷婷精品免费视频 | 精品久久久中文字幕 | 久久精品中文字幕第一页 | 国产乱人伦精品一区二区 | 国产精品手机视频 | 成年激情网 | 欧美亚洲精品小说一区二三区 | 久久精品国产精品亚洲艾 | 女十八毛片|