抽象類和介面的比較

2021-12-30 01:31:20 字數 750 閱讀 3815

介面和抽象類的相似性?

1 、介面和抽象類都不能被例項化,它們都位於繼承樹的頂端,用於被其他類實現和繼承。

2、 介面和抽象類都可以包含抽象方法,實現介面或繼承抽象類的普通子類都必須實現這些抽象方法

抽象類和介面的區別?

1、抽象類的關鍵字為abstract,介面的關鍵字為inte***ce

2、抽象類只能單繼承(extends),介面可以多實現(implements)

3、抽象類是關於類的屬性,介面是關於類的行為

(比如:飛機airplane和鳥bird,飛機的各個型別和鳥的各個型別需要通過分別繼承飛機和鳥實現,而他們的公共特點飛行,是他們共同的行為,需要定義為介面,使得他們均能夠實現)

4、抽象類有構造方法,介面沒有構造方法

5、抽象類中可以有各種型別的變數,但是介面中的變數只能為public static final型別

6、抽象類中可以有非抽象方法, 介面中的方法預設為final abstract

7、類可以有方法體,介面不能有方法體(即抽象類可以實現方法,介面不能夠有方法實現(即均為抽象方法))

note:抽象方法用public和protected修飾,用private則對子類不可視;介面的方法隱式的定義為public abstract

8、抽象類如果被抽象類繼承可以實現抽象類父類的部分方法,被非抽象類繼承則需要實現抽象類裡所有方法,

介面被實現需要實現介面中所有方法

9、介面中不能含有靜態**塊以及靜態方法,而抽象類可以有靜態**塊和靜態方法;

抽象類和介面的比較

1.抽象類 是一種特殊的類,具有以下特點 a 抽象方法只作宣告,而不包括實現,可以是看成沒有實現體的虛方法。b 抽象類不能被例項化,除此之外,具有類的其他特性。c 抽象類可以但不是不惜具有抽象方法和抽象方法,但是一旦有了抽象方法,就一定要把這個類宣告為抽象類。d 具體派生類必須覆蓋抽象類的抽象方法。...

抽象類和介面的比較

包含乙個抽象方法的類必須是抽象類 抽象類和抽象方法都要使用abstract關鍵字宣告 抽象方法只需要宣告而不需要實現 抽象類必須被繼承,子類 如果不是抽象類 必須覆寫抽象類中的全部抽象方法 注意 抽象方法不要用private宣告,如果使用private宣告,子類將無法覆寫 ps 抽象類允許構造方法,...

抽象類和介面的比較

介面和抽象類是非常相似的,但是他們之間是有區別的,主要區別一下幾個方面 1 乙個類可以實現眾多個介面,但是只能繼承乙個抽象類,可以說介面是取消程式語言中的多繼承機制的乙個衍生物,但是不完全如此 2 抽象類可以有非抽象方法,既可以有已經實現的方法,繼承他的子類可以對方法進行覆寫 而介面中定義的餓方法必...