1. 程式人生 > >抽象類和介面的異同

抽象類和介面的異同

抽象類:有抽象方法的類必須定義成抽象類,抽象類可以沒有抽象方法

抽象類和介面的相同點:

1.代表系統的抽象層,都不能例項化,都能包含抽象方法(用於描述系統提供的服務,不必提供具體實現)
2.都可以指向子類(實現類)物件

不同點:

1.構造方法:抽象類可以有構造方法,介面中不能有構造方法

2.變數

    1)普通變數:抽象類可以有普通成員變數,介面中沒有普通成員變數,預設型別public static final

    2)靜態變數:抽象類中靜態變數訪問型別可以是任意的,介面中靜態變數必須是public static final型別

3.方法

    1)靜態方法:抽象類中可以包含靜態方法,介面不能包含靜態方法。

    2)抽象方法:抽象類中抽象方法訪問型別可以是public,protected,default,介面抽象方法預設只能是public abstract

    3)普通方法:抽象類中可以包含普通方法,介面中所有方法必須都是抽象的

4.繼承性:一個類只能繼承一個直接父類,但可以實現多個介面