2022-07-04|閱讀時間 ‧ 約 3 分鐘

Java abstract class 與 interface 的差別

  • abstract class = 抽象類別
  • interface = 介面
  • 抽象類別與介面都無法建立物件。

1. 使用abstract關鍵字來建立抽象類別,interface關鍵字建立介面。
2. 類別可使用extends關鍵字,來繼承abstract class的屬性和方法。實現interface則是使用implements關鍵字。(只能extends一個abstract class,可以implements多個interface)
3. 抽象類別中可以定義「抽象方法」或「非抽象方法」,介面中則只能定義「抽象方法」,Java 8以後還能用靜態(static)方法和預設(default)方法。
4. 繼承abstract class的類別,須實作抽象方法。實現interface的類別,也需實作抽象方法,否則會有error。
5. 抽象類別的屬性或方法可以宣告成public | private | protected,除了抽象方法不可為private。介面則方法只能是public(預設也是public),屬性只能是public final static(預設也是public final static)。
6. interface只能繼承interface,且可以繼承多個。abstract class可以繼承一個class與實現多個interface。
  • interface只能繼承interface,且可以繼承多個:
  • abstract class可以繼承一個class(只能一個)與實現多個interface。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.