抽象類和介面的異同

2021-08-17 01:54:06 字數 609 閱讀 1025

抽象類

使用abstract關鍵字宣告

抽象方法不能是private

抽象類不能直接例項化,其實例可以使用子類向上轉型的方式獲得

子類如果沒有重寫全部抽象方法則仍是抽象類

子類只能extends乙個類

介面

抽象方法的集合,以inte***ce關鍵字宣告,

子類可以使用implements繼承多個介面

子類(非抽象類)必須重寫介面中的全部抽象方法

介面不能直接例項化,其實例可以使用子類向上轉型的方式獲得

方法預設是public,變數預設public static final,重寫時的訪問許可權不能低於介面定義的訪問控制許可權

過載與重寫

過載 函式名相同,引數個數或型別不同(與返回值無關)

重寫 覆蓋父類中的同名方法,指引數列表和返回值均相同

子類重寫的方法不能比在父類中有更嚴格的訪問控制許可權

父類中方法的訪問控制許可權是private,則在子類中並不是重寫,而不是乙個新方法

子類中重寫的方法丟擲的異常只能是父類方法的異常的本身或子集

抽象類和介面的異同

抽象類 有抽象方法的類必須定義成抽象類,抽象類可以沒有抽象方法 抽象類和介面的相同點 1.代表系統的抽象層,都不能例項化,都能包含抽象方法 用於描述系統提供的服務,不必提供具體實現 2.都可以指向子類 實現類 物件 不同點 1.構造方法 抽象類可以有構造方法,介面中不能有構造方法 2.變數 1 普通...

抽象類和介面的異同

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

抽象類和介面的異同

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