Java中接口和抽象類的區別

Java中接口和抽象類的區別

1、接口不能包含構造器,抽象類可以包含構造器

2、接口要被類實現,抽象類要被子類繼承

3、接口只能做方法申明,抽象類中可以做方法申明,也可以做方法實現

4、接口裏定義的變量只能是公共的靜態的常量(public static final),抽象類中的變量是普通變量

5、接口中不能含有靜態代碼塊以及靜態方法,而抽象類可以有靜態代碼塊和靜態方法; 接口裏不能包含初始化塊,但抽象類裏可以包含初始化塊(原因:抽象方法要被實現,所以不能是靜態的,也不能是私有的)

5、抽象類裏的抽象方法必須全部被子類所實現,如果子類不能全部實現父類抽象方法,那麼該子類只能是抽象類。同樣,一個實現接口的時候,如不能全部實現接口方法,那麼該類也只能爲抽象類

6、接口是設計的結果 ,抽象類是重構的結果

7、接口可繼承接口,並可多繼承接口,但類只能單根繼承

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章