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

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

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

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

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

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

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

Java為了彌補(bǔ)類單繼承的不足,引入了類多實(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中類繼承、接口實(shí)現(xiàn)的一些細(xì)節(jié)

這個(gè)錯(cuò)誤是無(wú)法被修復(fù)的。試想,類AB實(shí)現(xiàn)接口A和接口B,那么接口A里面的抽象方法和接口B里面的抽象方法參數(shù)列表都相同僅有返回值不同,類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的子類

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

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)類,那為什么LinkedHashMap還要實(shí)現(xiàn)Map呢,豈不是多此一舉嗎?由此想到了會(huì)不會(huì)是因?yàn)槔^承了HashMap不代表LinkedHashMap是Map的子類所以LinkedHashMap要專門再實(shí)現(xiàn)一下Map,做了上面的實(shí)驗(yàn),發(fā)現(xiàn)是我多慮了,可能Sun的開(kāi)發(fā)人員就想這么寫吧,呵呵。

父子類中有同名屬性

這不是錯(cuò)誤,只是會(huì)造成歧義而已,而且也可能會(huì)造成返回我們不想要的結(jié)果,主要原因可能是開(kāi)發(fā)者對(duì)父類代碼不熟悉所導(dǎo)致的(尤其是在父類定義的屬性一大堆的場(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)心父子類的同名屬性會(huì)不會(huì)存在覆蓋的情況,從運(yùn)行結(jié)果來(lái)看,完全不用擔(dān)心這個(gè)問(wèn)題。

一個(gè)實(shí)現(xiàn)類繼承自一個(gè)抽象類并且實(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中類繼承、接口實(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-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 色网站欧美 | 国产高清国内精品福利99久久 | 国产精品1 | 色色色在线 | 国产三级久久久精品三级 | 天天躁日日躁狠狠躁综合 | 国产在线观看一区精品 | 毛片福利视频 | 伊人久久五月天 | 色婷婷狠狠久久综合五月 | 一级成人毛片免费观看欧美 | 男女交黄 | 久久精品在线免费观看 | 久久久久免费观看 | 2019亚洲日韩新视频 | 性欧美另类老妇高清 | 国产91在线|亚洲 | 亚洲成人一级 | 久久国产精品高清一区二区三区 | 精品在线小视频 | 最新国产午夜精品视频成人 | 亚洲欧美日韩在线 | 99re热视频这里只有精品5 | 中文字幕国产综合 | 天天曰天天 | 日日碰碰 | 亚洲精品www久久久久久久软件 | 久久www免费人成看片入口 | 加勒比精品久久一区二区三区 | 久久久久久夜精品精品免费 | 波多野结衣一区二区三区在线观看 | 国产性生活| 免费欧洲毛片a级视频老妇女 | 日韩视频二区 | 精品久久香蕉国产线看观看亚洲 | 在线亚洲精品国产成人二区 | 99久久国产综合精品女不卡 | 四库国产精品成人 | 香蕉免费看一区二区三区 | 亚洲午夜一级毛片 | 国产精品福利在线观看免费不卡 |