抽象類和接口的區(qū)別

接口和抽象類的區(qū)別?

? ? 區(qū)別一:

? ? 接口中全部都是抽象方法,在jdk1.8中,接口可以定義默認(rèn)方法和靜態(tài)的實(shí)體方法

抽象類中可以有抽象方法,也可以有普通方法

區(qū)別二:

接口用關(guān)鍵字interface修飾

抽象類用關(guān)鍵字abstract修飾

區(qū)別三:

接口沒有構(gòu)造方法

抽象類有構(gòu)造方法

區(qū)別四:

接口里面不能有構(gòu)造代碼塊和靜態(tài)代碼塊

抽象類中里面可以有構(gòu)造代碼塊和靜態(tài)代碼塊

區(qū)別五:

接口的實(shí)現(xiàn)類用關(guān)鍵字implement實(shí)現(xiàn),且可以多實(shí)現(xiàn)

抽象類的子類用關(guān)鍵字extends繼承,只能是單繼承

區(qū)別六:

接口中成員變量的只能是public static final類型

抽象類中的成員變量可以是任意類型

區(qū)別七:

接口是對行為的抽象,即對整個類整體進(jìn)行抽象

抽象類是對一種事物的抽象,即對類抽象

區(qū)別八:

如果一個類實(shí)現(xiàn)了該接口,則這個實(shí)現(xiàn)類和接口之間是有沒有,具不具備的關(guān)系

如果一個類繼承了抽象類,則這個類和抽象類之間是同一種類的關(guān)系

區(qū)別九:

抽象類作為很多子類的父類,他是一種模板設(shè)計模式

接口是一個行為規(guī)范,他是一種輻射式設(shè)計? ?

接口

概念:如果一個抽象類中所有的方法都是抽象方法,那么就稱這個抽象類為接口

1.接口可以繼承多個接口

2.一個類可以實(shí)現(xiàn)多個接口,實(shí)現(xiàn)的多個接口中不能出現(xiàn)"返回值不同,方法簽名相同"的抽象方法

3.接口類的修飾符默認(rèn)是public abstract

4.接口的屬性默認(rèn)是public static final修飾

5.接口的方法默認(rèn)是public abstract修飾

6.接口不是類,不能創(chuàng)建對象,沒有構(gòu)造方法

7.接口里面可以定義內(nèi)部類

8.接口里面不能有構(gòu)造代碼塊和靜態(tài)代碼塊


抽象類

概念:使用了關(guān)鍵詞abstract聲明的類叫作抽象類

1.抽象類即使不包含抽象方法也是抽象類

2.抽象類中可以包含抽象方法也可以不包含,也可以包含普通方法

3.抽象類不能被實(shí)例化,必須在子類中實(shí)例化

4.抽象類含有非抽象方法,而且子類繼承該類時,

? 重寫了該方法,那么該子類的對象調(diào)用該方法時,是子類中的方法;

? 如果子類沒有重寫該父類中的非抽象方法,那么子類對象調(diào)用的是父類中的方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先來看看抽象類和接口的定義: 抽象類(abstract class): 使用abstract修飾符修飾的類。官方點(diǎn)...
    IT廢柴閱讀 54,153評論 7 45
  • 含有abstract 修飾符的class即為抽象類,abstract類不能創(chuàng)建的實(shí)例對象。含有 abstract方...
    AegeanSea_d32a閱讀 153評論 0 0
  • Java中的抽象類和接口是兩個有些類似的概念,在某些情況下他們有著類似的語義。下面來總結(jié)一下他們各自的特點(diǎn)。 一....
    第四單元閱讀 690評論 2 9
  • 概念 面向?qū)ο蟮娜蟾拍睿悍庋b,繼承,多態(tài) ;把屬性和方法封裝起來就是類。 一個類的屬性和方法被另外...
    BULL_DEBUG閱讀 2,007評論 0 1
  • 一直覺得教師是一份穩(wěn)定、簡單、無聊的工作,但是,是媽媽的夢想,她希望自己是一名老師,也希望自己的女兒是老師。她沒...
    回頭笑笑閱讀 1,141評論 0 0

友情鏈接更多精彩內(nèi)容