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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java什么是抽象類?什么情況下用到

Java什么是抽象類?什么情況下用到

更新時(shí)間:2020-08-05 16:13:21 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3809次

如何徹底理解Java抽象類為什么要用抽象類什么情況下用抽象類

吶,到底什么是抽象類,有時(shí)明明一個(gè)普通類就可以解決了,為啥非得整個(gè)抽象類,裝逼嗎

我曾帶著這樣的疑惑,查了很多資料,看了很多源碼,寫了很多代碼,以下是我的理解

一、徹底理解Java抽象類

當(dāng)我們無法理解一個(gè)事物的時(shí)候,我們得追尋他的根源:萬物皆對象

在面向?qū)ο笾校篱g萬物皆通過類來描繪。但如果一個(gè)類描繪一個(gè)具體的事物時(shí),卻沒有包含足夠完整的信息,這樣的類就是抽象類。

舉個(gè)栗子

(豬狗牛羊鳥器車的例子就不要看了,都是一些教科書上沒有任何實(shí)操意義的例子)

讓你設(shè)計(jì)一個(gè)簡單的學(xué)生選課系統(tǒng)

基本需求:學(xué)生選課,老師授課。

最終會(huì)抽象出其中2個(gè)領(lǐng)域?qū)ο螅簩W(xué)生、老師。當(dāng)我們用類去描述學(xué)生、老師時(shí),他們的共性是人(Person):有名字、年齡、職業(yè)等特征,有上課(學(xué)習(xí)、授課都屬于上課)等行為;

public?abstract?class?Person?{
????protected?String?name;
????protected?int?age;
????protected?int?profession;

????public?abstract?void?goToClass();
}

我們想想,光有這些特性、行為,就能完整的描述出一個(gè)可在選課系統(tǒng),操作的對象(學(xué)生或老師)嗎?顯然不行!學(xué)生(Student)還需要:所選課程、選中的老師等其他特征;老師(Teacher)還需要:學(xué)生限數(shù)、名下學(xué)生等其他特征,加上這些東西,才能完整的描述一個(gè)可供操作的對象!所以Person類理應(yīng)作為抽象類,goToClass方法是子類必須重寫的方法,表明子類是去學(xué)習(xí)的,還是上課的。

public?class?Student?extends?Person?{
????private?int?selLesson;
????private?int?selTeacher;

????@Override
????public?void?goToClass()?{
????????System.out.println("偶是學(xué)生,偶來聽課的");
????}
}
public?class?Teacher?extends?Person?{
????private?int?studentNumLimit;
????private?List?students;

????@Override
????public?void?goToClass()?{
????????System.out.println("偶是老師,偶來講課");
????}
}

二、為什么要用抽象類什么情況下用抽象類

1、根本原因:無法完整描述一個(gè)事物的類

2、抽象類有一個(gè)特征,其抽象方法,必須在子類重寫(子類非抽象類),所以,當(dāng)我們父類的方法,必須要子類重寫實(shí)現(xiàn)時(shí),用抽象類。如上面的goToClass()方法,學(xué)生、老師去課堂的目的完全不同,必須自己實(shí)現(xiàn)。

3、跟接口相比,接口的方法必須由實(shí)現(xiàn)類全部實(shí)現(xiàn),接口方法比較多時(shí),就會(huì)麻煩,而抽象類沒有這樣的限制。比如jdk里面的AbstractList,是ArrayList的父類,里面全是方法,你只需要重寫自己需要的

4、易于理解,有時(shí)候,這樣的設(shè)計(jì),讓人更容易理解它的層級等。個(gè)人認(rèn)為所有的設(shè)計(jì)原則都是死的,為了提高代碼的實(shí)操性,犧牲部分設(shè)計(jì)原則是可以的

Java什么是抽象類?什么情況下用到

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對“Java什么是抽象類?什么情況下用到”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 福利网站在线观看 | 有码 在线 | 夜夜操国产| 美国毛片一级视频在线aa | 久久久香蕉视频 | 欧美日本一二三区 | 全免费午夜一级毛片一级毛 | 波多野结衣三区 | 国产99欧美精品久久精品久久 | 日本特黄一级午夜剧场毛片 | 日日操狠狠操 | 一区二区精品视频 | 亚洲精品一区二区深夜福利 | 久久久高清国产999尤物 | 亚洲成人在线视频观看 | 色姑娘久| 国产精品久久久久久久久福利 | 波多一区 | 久青草国产在线视频_久青草免 | 尹人视频在线观看 | 亚洲欧美综合图区官网 | 一级做性色a爱片久久片 | 久久精品亚洲乱码伦伦中文 | 国产在线观看自拍 | 国产精品一国产精品免费 | 4hu影院永久在线播放 | 国产免费午夜a无码v视频 | 天天操伊人 | 免费伊人 | 狠狠综合久久久久综合 | 四虎高清在线精品免费观看 | 在线视频亚洲一区 | 国产精品一区伦免视频播放 | 国产在线小视频 | 欧美成人xxxxxxxx在线 | 真实偷拍激情啪啪对白 | 看真人视频一一级毛片 | 国产精品99久久免费观看 | 元龙第三季动漫在线观看免费版 | 欧美日韩在线成人免费视频大全 | 久久一区二区免费播放 |