當前位置: 首頁> 學習園地

接口和抽象類有什么區別?

2019-11-05 09:43:32更新

(1)抽象類和接口都不能直接實例化,如果要實例化,抽象類變量必須指向實現所有抽象方法的子類對象,接口變量必須指向實現所有接口方法的類對象。

(2)抽象類要被子類繼承,接口要被類實現。

(3)接口只能聲明方法,抽象類中可以聲明方法,也可以實現方法。

(4)接口里定義的變量只能是公共的靜態的常量,抽象類中的變量是普通變量。

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

(6)抽象類里可以沒有抽象方法

(7)如果一個類里有抽象方法,那么這個類只能是抽象類

(8)抽象方法要被實現,所以不能是靜態的,也不能是私有的。

(9)接口可繼承接口,并可多繼承接口,但類(抽象類)只能單繼承。