1. 程式人生 > >知識點4:介面與抽象類有何區別

知識點4:介面與抽象類有何區別

從語法層面而言,介面和抽象類的區別如下:

1.抽象類可以提供成員方法的實現細節,而介面中只能存在抽象方法(預設 public abstract)

2.抽象類中的成員變數可以是多種型別,而介面中的成員變數必須用public static final(常量)修飾

3.一個類只能繼承一個抽象類(單繼承),但可以實現多個介面(多繼承)。
4.抽象類中允許含有靜態程式碼塊和靜態方法,而介面類不能。

從設計層面而言,介面和抽象類的區別如下:

1.抽象類是對整一個類的屬性,行為等方面進行抽象,而介面則是對行為抽象。就好比飛機和鳥,抽象類抽象出的是飛行物類。而介面則是抽閒出飛行方法。

2.抽象類是一個模板式的設計,當在開發過程中出現需求更改的情況,只需要更改抽象類而不需要更改它的子類。介面是一種輻射性設計,當介面的內容發生改變時,需要同時對實現它的子類進行相應的修改。

3.抽象類可以類比為模板,而介面可以類比為協議

下一篇:ArrayList與Vector的區別:敬請期待