抽象類和介面的異同

2021-08-10 15:36:31 字數 742 閱讀 9981

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

抽象類和介面的相同點:

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

2.都可以指向子類(實現類)物件

不同點:

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

2.變數

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

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

3.方法

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

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

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

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

抽象類和介面的異同

抽象類 使用abstract關鍵字宣告 抽象方法不能是private 抽象類不能直接例項化,其實例可以使用子類向上轉型的方式獲得 子類如果沒有重寫全部抽象方法則仍是抽象類 子類只能extends乙個類 介面 抽象方法的集合,以inte ce關鍵字宣告,子類可以使用implements繼承多個介面 子...

抽象類和介面的異同

1 不能例項化 2 如果繼承某個抽象類或者實現某個介面,需要實現所有的抽象方法,否則該類仍是抽象來。抽象類 1 成員變數 變數和常量都可以 2 成員方法 抽象方法和非抽象方法都可以 3 構造方法 可以有 接 口 1 成員變數 只可以是常量 2 成員方法 只可以是抽象方法 3 構造方法 不允許有,禁止...

抽象類和介面的異同

1 不同 抽象類 1.抽象類中可以定義構造器 2.可以有抽象方法和具體方法 3.介面中的成員全都是 public 的 4.抽象類中可以定義成員變數 5.有抽象方法的類必須被宣告為抽象類,而抽象類未必要有抽象方法 6.抽象類中可以包含靜態方法 7.乙個類只能繼承乙個抽象類 介面 1.介面中不能定義構造...