抽象類與介面的區別

2021-09-02 13:53:43 字數 840 閱讀 5617

抽象類介面都包含可以有子類繼承實現的成員,但抽象類是對根源的抽象,而介面是對動作的抽象

抽象類的功能要遠超過介面,那為什麼還要介面呢?

這主要是由於定義抽象類的代價高。因為每個類智慧型繼承乙個類,在這個類中,必須繼承或編寫出其中子類的所有共性,因此,雖然介面在功能上會弱化許多,但他只是針對乙個動作的描述,而且可以在乙個類中同時實現多個介面,這樣會降低設計的難度。

抽象類與介面的區別主要有以下幾點:

子類只能繼承乙個抽象類,但可以實現任意多個介面;

乙個類要實現乙個藉口必須實現介面中的所有方法,而抽象類則不必。

抽象類中的成員變數可以是各種型別,而介面中的成員變數只能是 public static void 型的。

介面中只能定義抽象方法,而抽象類中可以定義非抽象方法。

抽象類中可以有靜態方法和靜態**塊等,介面中不可以。

介面不能被例項化,沒有構造方法,但抽象類可以有構造方法。

注:抽象類中,構造方法不能被定義成抽象方法

綜上所述可以得下表

比較項抽象類

介面方法

可以有非抽象方法

所有方法都是抽象方法

屬性屬性中可以有非靜態常量

所有屬性都是靜態常量

構造方法

有構造方法

無構造方法

繼承乙個類只能繼承乙個父類

乙個類可以同時實現多個介面

被繼承乙個類只能繼承乙個父類

乙個介面可以同時繼承多個介面

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...

抽象類與介面的區別

c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...

抽象類與介面的區別

c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...