從語法層面而言,介面和抽象類的區別如下:
1.抽象類可以提供成員方法的實現細節,而介面中只能存在抽象方法(預設 public abstract)
2.抽象類中的成員變數可以是多種型別,而介面中的成員變數必須用public static final(常量)修飾
3.乙個類只能繼承乙個抽象類(單繼承),但可以實現多個介面(多繼承)。
4.抽象類中允許含有靜態**塊和靜態方法,而介面類不能。
從設計層面而言,介面和抽象類的區別如下:
1.抽象類是對整乙個類的屬性,行為等方面進行抽象,而介面則是對行為抽象。就好比飛機和鳥,抽象類抽象出的是飛行物類。而介面則是抽閒出飛行方法。
2.抽象類是乙個模板式的設計,當在開發過程中出現需求更改的情況,只需要更改抽象類而不需要更改它的子類。介面是一種輻射性設計,當介面的內容發生改變時,需要同時對實現它的子類進行相應的修改。
3.抽象類可以模擬為模板,而介面可以模擬為協議
介面與抽象類有何區別
從語法層面而言,介面和抽象類的區別如下 1.抽象類可以提供成員方法的實現細節,而介面中只能存在抽象方法 預設 public abstract 2.抽象類中的成員變數可以是多種型別,而介面中的成員變數必須用public static final 常量 修飾 3.乙個類只能繼承乙個抽象類 單繼承 但可以...
設計模式學習筆記 4 介面和抽象類
介面和抽象類的區別 抽象類和介面的意義 抽象類是對成員變數和方法的抽象,是一種is a 關係,是為了解決 復用問題,介面僅僅是方法的抽象,是一種has a 關係,表示具有某種行為特性,是為了解決解耦問題,如何決定使用抽象類還是介面 基於介面 抽象 而非實現程式設計 越抽象,越脫離具體某一細節的設計,...
Java知識點 6 抽象類和介面
抽象和介面是支援抽象方法的兩種機制,也是平時使用最頻繁的內容,在架構設計方面也有很多涉及。通過本文進行一下知識點的整理。如果有不準確的地方,還請指正。1.抽象 1.1 首先明確什麼是抽象方法,只有宣告,沒有具體方法體的方法我們稱之為抽象方法,使用abstract進行修飾 1.2 含有抽象方法的類,我...