接口和抽象類的聯繫和區別

一 接口和抽象類的類似性
1 接口和抽象類都不能被實例化,它們都位於繼承樹的頂端,用於被其餘類實現和繼承。
2 接口和抽象類均可以包含抽象方法,實現接口或繼承抽象類的普通子類都必須實現這些抽象方法。
 
二 接口和抽象類的區別
1 接口裏只能包含抽象方法,靜態方法和默認方法,不能爲抽象方法提供方法實現,抽象類則徹底能夠包含普通方法。
2 接口裏只能定義靜態常量,不能定義普通成員變量,抽象類裏則既能夠定義普通成員變量,也能夠定義靜態常量。
3 接口不能包含構造器,抽象類能夠包含構造器,抽象類裏的構造器並非用於建立對象,而是讓其子類調用這些構造器來完成屬於抽象類的初始化操做。
4 接口裏不能包含初始化塊,但抽象類裏徹底能夠包含初始化塊。
5 一個類最多隻能有一個直接父類,包括抽象類,但一個類能夠直接實現多個接口,經過實現多個接口能夠彌補Java單繼承不足。spa

相關文章
相關標籤/搜索