首頁 行業(yè) 活動 項目 快訊 文娛 時尚 娛樂 科技 汽車 綜合 生活

抽象類和接口的區(qū)別是什么(抽象類和接口的區(qū)別) 熱文

2023-06-27 03:07:05 來源:樂拇指
音頻解說

1、抽象類與接口的區(qū)別如下:語法層面區(qū)別: 1)抽象類中提供成員方法的實現(xiàn)細節(jié),接口中只能是public abstract修飾,即只能是抽象方法。

2、 2)抽象類中成員變量可實現(xiàn)多種權(quán)限public private protected final 等,接口中只能用public static final修飾。


【資料圖】

3、 3)抽象類中可以有靜態(tài)方法和靜態(tài)代碼塊,接口中不能有靜態(tài)方法和靜態(tài)代碼塊。

4、 4)單繼承多實現(xiàn)。

5、2、設(shè)計層面區(qū)別: 1)抽象類是對事物的抽象,即對類抽象;接口是對行為抽象,即局部抽象。

6、 抽象類對整體形為進行抽象,包括形為和屬性。

7、接口只對行為進行抽象。

8、 例子:舉個簡單的例子,飛機和鳥是不同類的事物,但是它們都有一個共性,就是都會飛。

9、那么在設(shè)計的時候,可以將飛機設(shè)計為一個類Airplane,將鳥設(shè)計為一個類Bird,但是不能將飛行 這個特性也設(shè)計為類,因此它只是一個行為特性,并不是對一類事物的抽象描述。

10、此時可以將 飛行 設(shè)計為一個接口Fly,包含方法fly(),然后Airplane和Bird分別根據(jù)自己的需要實現(xiàn)Fly這個接口。

11、然后至于有不同種類的飛機,比如戰(zhàn)斗機、民用飛機等直接繼承Airplane即可,對于鳥也是類似的,不同種類的鳥直接繼承Bird類即可。

12、從這里可以看出,繼承是一個"是不是"的關(guān)系,而 接口 實現(xiàn)則是"有沒有"的關(guān)系。

13、如果一個類繼承了某個抽象類,則子類必定是抽象類的種類,而接口實現(xiàn)則是有沒有、具備不具備的關(guān)系,比如鳥是否能飛(或者是否具備飛行這個特點),能飛行則可以實現(xiàn)這個接口,不能飛行就不實現(xiàn)這個接口。

14、 2)抽象類是多個子類的像類,是一種模板式設(shè)計;接口是一咱形為規(guī)范,是一種輻射式設(shè)計。

15、 例子:最簡單例子,大家都用過ppt里面的模板,如果用模板A設(shè)計了ppt B和ppt C,ppt B和pptC公共的部分就是模板A了,如果它們的公共部分需要改動,則只需要改動模板A就可以了,不需要重新對ppt B和pptC進行改動。

16、而輻射式設(shè)計,比如某個電梯都裝了某種報警器,一旦要更新報警器,就必須全部更新。

17、也就是說對于抽象類,如果需要添加新的方法,可以直接在抽象類中添加具體的實現(xiàn),子類可以不進行變更;而對于接口則不行,如果接口進行了變更,則所有實現(xiàn)這個接口的類都必須進行相應(yīng)的改動。

本文到此分享完畢,希望對大家有所幫助。

關(guān)鍵詞:

上一篇:極光世界官網(wǎng)首頁(極光世界好玩么) 當(dāng)前速遞

下一篇:IPO動態(tài):東方四通擬在深交所創(chuàng)業(yè)板上市募資4.74億元

責(zé)任編輯:

最近更新

點擊排行
推薦閱讀