關(guān)于接口和抽象類的簡單理解

抽象類:

抽象類體現(xiàn)了數(shù)據(jù)抽象的思想,是實現(xiàn)多態(tài)的一種機(jī)制。

1.由abstract關(guān)鍵詞修飾的類稱之為抽象類。?

2.抽象類中沒有實現(xiàn)的方法稱之為抽象方法,也需要加關(guān)鍵字abstract。?

3.抽象類中也可以沒有抽象方法。?

4.抽象類中可以有已經(jīng)實現(xiàn)的方法,可以定義成員變量。

5.抽象類可以多層繼承。


接口:

接口提供的只是一種形式,而沒有具體的實現(xiàn)。同時實現(xiàn)該接口的實現(xiàn)類必須要實現(xiàn)該接口的所有方法,通過使用implements關(guān)鍵字實現(xiàn)。

1.由interface關(guān)鍵詞修飾的稱之為接口;?

2.接口中可以定義成員變量,但是這些成員變量默認(rèn)都是public static final的常量。?

3.接口中沒有已經(jīng)實現(xiàn)的方法,全部是抽象方法。?

4.一個類實現(xiàn)某一接口,必須實現(xiàn)接口中定義的所有方法。?

5.一個類可以實現(xiàn)多個接口。


區(qū)別:?

1.抽象層次不同。

????抽象類是對類抽象,而接口是對行為的抽象。抽象類是對整個類整體進(jìn)行抽象,包括屬性、行為,

? ? 接口卻是對類局部(行為)進(jìn)行抽象。

2.設(shè)計層次不同。

? ??抽象類是自下而上來設(shè)計的,要先知道子類才能抽象出父類,是自底向上抽象而來的。

? ? 接口不需要知道子類的存在,只需要定義一個規(guī)則即可,是自頂向下設(shè)計出來的。

3.實現(xiàn)不同。

比如 鳥和飛機(jī)都有飛的行為

用抽象類實現(xiàn):

父類:

飛機(jī):


鳥:



用接口實現(xiàn):

接口:

飛機(jī):


鳥:



鳥類有吃東西的方法。但用抽象類繼承,飛機(jī)也要實現(xiàn)吃東西的方法,顯然是不合理的,

所以從這里可以看出來,抽象類是抽象的共有的屬性或方法。而接口只是抽象了局部的一部分。


抽象類+接口:



鳥:



接口:



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

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

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