日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java基础之抽象类和接口

發(fā)布時(shí)間:2025/3/20 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java基础之抽象类和接口 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、抽象:

**抽象類(abstract class):**使用了abstract關(guān)鍵字所修飾的類叫做抽象類。抽象類無法實(shí)例化,也就是說,不能new出來一個(gè)抽象類的對象(實(shí)例)。

**抽象方法(abstract method):**使用abstract關(guān)鍵字所修飾的方法叫做抽象方法。抽象方法需要定義在抽象類中。相對于抽象方法,之前所定義的方法叫做具體方法(有聲明,有實(shí)現(xiàn))。

如果一個(gè)類包含了抽象方法,那么這個(gè)類一定是抽象類。如果某個(gè)類是抽象類,那么該類可以包含具體方法(有聲明、有實(shí)現(xiàn))。如果一個(gè)類中包含了抽象方法,那么這個(gè)類一定要聲明成abstract class,也就是說,該類一定是抽象類;反之,如果某個(gè)類是抽象類,那么該類既可以包含抽象方法,也可以包含具體方法。無論何種情況,只要一個(gè)類是抽象類,那么這個(gè)類就無法實(shí)例化。在子類繼承父類(父類是個(gè)抽象類)的情況下,那么該子類必須要實(shí)現(xiàn)父類中所定義的所有抽象方法;否則,該子類需要聲明成一個(gè)abstract class。

二、接口

Java語言不支持一個(gè)類有多個(gè)直接的父類(多繼承),但現(xiàn)實(shí)例子中,又有很多類似于多繼承的例子,比如教師,他的父類既可以是人,也可以是父母,所以,在java中就用繼承來填充這個(gè)空缺,java不可以多繼承, 但可以實(shí)現(xiàn)(implements)多個(gè)接口,間接的實(shí)現(xiàn)了多繼承。

Java接口的特征歸納:

1、Java接口中的成員變量默認(rèn)都是public,static,final類型的(都可省略),必須被顯示初始化,即接口中的成員變量為常量(大寫,單詞之間用"_"分隔)

2、Java接口中的方法默認(rèn)都是public,abstract類型的(都可省略),沒有方法體,不能被實(shí)例化

3、Java接口中只能包含public,static,final類型的成員變量和public,abstract類型的成員方法

4、 接口中沒有構(gòu)造方法,不能被實(shí)例化

5、 一個(gè)接口不能實(shí)現(xiàn)(implements)另一個(gè)接口,但它可以繼承多個(gè)其它的接口

6、Java接口必須通過類來實(shí)現(xiàn)它的抽象方法 如:public class A implements B{…}

7、 當(dāng)類實(shí)現(xiàn)了某個(gè)Java接口時(shí),它必須實(shí)現(xiàn)接口中的所有抽象方法,否則這個(gè)類必須聲明為抽象的

8、不允許創(chuàng)建接口的實(shí)例(實(shí)例化),但允許定義接口類型的引用變量,該引用變量引用實(shí)現(xiàn)了這個(gè)接口的類的實(shí)例

9、一個(gè)類只能繼承一個(gè)直接的父類,但可以實(shí)現(xiàn)多個(gè)接口,間接的實(shí)現(xiàn)了多繼承.

10、通過接口,可以方便地對已經(jīng)存在的系統(tǒng)進(jìn)行自下而上的抽象,對于任意兩個(gè)類,不管它們是否屬于同一個(gè)父類,只有它們存在相同的功能,就能從中抽象出一個(gè)接 口類型.對于已經(jīng)存在的繼承樹,可以方便的從類中抽象出新的接口,但從類中抽象出新的抽象類卻不那么容易,因此接口更有利于軟件系統(tǒng)的維護(hù)與重構(gòu).對于兩 個(gè)系統(tǒng),通過接口交互比通過抽象類交互能獲得更好的松耦合.

11,、接口是構(gòu)建松耦合軟件系統(tǒng)的重要法寶,由于接口用于描述系統(tǒng)對外提供的所有服務(wù),因此接口中的成員變量和方法都必須是public類型的,確保外部使用者 能訪問它們,接口僅僅描述系統(tǒng)能做什么,但不指明如何去做,所有接口中的方法都是抽象方法,接口不涉及和任何具體實(shí)例相關(guān)的細(xì)節(jié),因此接口沒有構(gòu)造方法, 不能被實(shí)例化,沒有實(shí)例變量.

三、它們的區(qū)別

相同點(diǎn):

1、代表系統(tǒng)的抽象層,當(dāng)一個(gè)系統(tǒng)使用一顆繼承樹上的類時(shí),應(yīng)該盡量把引用變量聲明為繼承樹的上層抽象類型,這樣可以提高兩個(gè)系統(tǒng)之間的松耦合

2、都不能被實(shí)例化

3、 都包含抽象方法,這些抽象方法用于描述系統(tǒng)能提供哪些服務(wù),但不提供具體的實(shí)現(xiàn)

不同點(diǎn):

1、在抽象類中可以為部分方法提供默認(rèn)的實(shí)現(xiàn),從而避免在子類中重復(fù)實(shí)現(xiàn)它們,這是抽象類的優(yōu)勢,但這一優(yōu)勢限制了多繼承,而接口中只能包含抽象方法.由于在 抽象類中允許加入具體方法,因此擴(kuò)展抽象類的功能,即向抽象類中添加具體方法,不會(huì)對它的子類造成影響,而對于接口,一旦接口被公布,就必須非常穩(wěn)定,因 為隨意在接口中添加抽象方法,會(huì)影響到所有的實(shí)現(xiàn)類,這些實(shí)現(xiàn)類要么實(shí)現(xiàn)新增的抽象方法,要么聲明為抽象類

2、 一個(gè)類只能繼承一個(gè)直接的父類,這個(gè)父類可能是抽象類,但一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,這是接口的優(yōu)勢,但這一優(yōu)勢是以不允許為任何方法提供實(shí)現(xiàn)作為代價(jià)的

3、為什么Java語言不允許多重繼承呢?當(dāng)子類覆蓋父類的實(shí)例方法或隱藏父類的成員變量及靜態(tài)方法時(shí),Java虛擬機(jī)采用不同的綁定規(guī)則,假如還允許一個(gè)類 有多個(gè)直接的父類,那么會(huì)使綁定規(guī)則更加復(fù)雜,

因此,為了簡化系統(tǒng)結(jié)構(gòu)設(shè)計(jì)和動(dòng)態(tài)綁定機(jī)制,Java語言禁止多重繼承.而接口中只有抽象方法,沒有實(shí)例變量和靜態(tài)方法,只有接口的實(shí)現(xiàn)類才會(huì)實(shí)現(xiàn) 接口的抽象方法(接口中的抽象方法是通過類來實(shí)現(xiàn)的),因此,一個(gè)類即使有多個(gè)接口,也不會(huì)增加Java虛擬機(jī)進(jìn)行動(dòng)態(tài)綁定的復(fù)雜度.因?yàn)镴ava虛擬機(jī) 永遠(yuǎn)不會(huì)把方法與接口綁定,而只會(huì)把方法與它的實(shí)現(xiàn)類綁定.

四、使用接口和抽象類的總體原則:

1)用接口作為系統(tǒng)與外界交互的窗口站在外界使用者(另一個(gè)系統(tǒng))的角度,接口向使用者承諾系統(tǒng)能提供哪些服務(wù),站在系統(tǒng)本身的角度,接口制定系統(tǒng)必須實(shí)現(xiàn)哪 些服務(wù),接口是系統(tǒng)中最高層次的抽象類型.通過接口交互可以提高兩個(gè)系統(tǒng)之間的送耦合系統(tǒng)A通過系統(tǒng)B進(jìn)行交互,是指系統(tǒng)A訪問系統(tǒng)B時(shí),把引用變量聲明 為系統(tǒng)B中的接口類型,該引用變量引用系統(tǒng)B中接口的實(shí)現(xiàn)類的實(shí)例。

2)Java接口本身必須非常穩(wěn)定,Java接口一旦制定,就不允許隨遇更加,否則對外面使用者及系統(tǒng)本身造成影響

3)用抽象類來定制系統(tǒng)中的擴(kuò)展點(diǎn)

抽象類來完成部分實(shí)現(xiàn),還要一些功能通過它的子類來實(shí)現(xiàn)

總結(jié)

以上是生活随笔為你收集整理的java基础之抽象类和接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美1区2区 | 欧美 国产 精品 | 成人av中文字幕 | 欧美日韩在线视频 | 神马伦理影视 | 国产午夜一区二区三区 | 亚洲痴女 | 国产一区二区三区四区五区美女 | 三级五月天 | av男人的天堂网 | 素人av在线| 国产99久久久国产精品成人免费 | 国产成人无码久久久精品天美传媒 | 婷婷的五月 | 女人十八岁毛片 | 97超碰资源总站 | 久久久久久久久久久久久久国产 | 91禁在线动漫| 久久精品国产亚洲av麻豆色欲 | 免费国产一级 | 美女黄视频在线观看 | av片网 | 免费在线观看成人 | 织田真子作品 | 18视频在线观看网站 | 国产999精品久久久久久 | 中字幕视频在线永久在线观看免费 | 精品久久久久久久久久久国产字幕 | 日本xxxx高潮少妇 | 捆绑调教在线观看 | 久久综合一区二区三区 | 奇米影视亚洲 | 欧美色国 | www.天天干 | 欧美在线一二三区 | 亚洲天堂视频网 | 欧美亚洲色综久久精品国产 | 日本三级一区二区 | 国产在线传媒 | 性做久久久久久久免费看 | 99视频免费在线观看 | 成人音影 | 人人妻人人玩人人澡人人爽 | 国产精品不卡在线观看 | 丁香六月色婷婷 | 激情小视频 | 中文字幕免 | 欧美精品一区三区 | 99久久久久无码国产精品 | 国产精品美女久久久久 | 国产高潮在线观看 | 国产福利影院 | 美女一级黄色片 | 亚洲成人黄色网 | 337p粉嫩色噜噜噜大肥臀 | 国产欧美日韩一区二区三区 | 国产在线精品播放 | 精品国产一区二区视频 | 在线观看亚洲天堂 | 爽妇网国产精品 | av毛片大全 | 爽妇网国产精品 | 91网站免费在线观看 | 国产日日夜夜 | 日韩卡一卡二 | 最新精品在线 | 成人国产在线视频 | av毛片在线免费观看 | 国产91热爆ts人妖系列 | 一级视频免费观看 | 三年中文免费观看大全动漫 | 亚洲综合久 | 日韩一级免费毛片 | 3级av| 噜噜吧噜噜色 | 日韩欧美亚洲天堂 | 日韩一区在线播放 | 久久久精品一区二区 | 黄色伊人网 | 欧美裸体xxxx | 亚洲a∨无码无在线观看 | 久久精品美女 | 超碰人人91 | 黑人糟蹋人妻hd中文字幕 | 在线日韩三级 | 亚洲av无码乱码在线观看富二代 | 中文字幕日韩一区二区三区不卡 | 91操人视频 | 国产福利小视频在线观看 | 国产又粗又黄又爽又硬的视频 | 粗口调教gay2022.com | 国产一区二区三区电影在线观看 | 国产视频久久 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 亚洲一本二本 | 福利视频不卡 | 欧美大片免费高清观看 | 一区二区免费看 | 妺妺窝人体色WWW精品 |