本帖最後由 周政輝 於 2018-3-24 10:13 編輯
概述
抽象類別 (Abstract Class)
- 使用 abstract 定義抽象類別 (不得宣告為 final class)
- 無法實體化的類別 (即無法透過 new 關鍵字產生實體)
- 或許會看到如下這種程式碼
- 專門被拿來當作父類別的類別,具有範本作用
- 只能被繼承 (使用 extends 關鍵字),子類別需實作抽象方法 (否則繼續抽象下去)
- 其抽象方法 (abstract method)封裝等級不能是 private (即必須是 public/protected/(default))
- abstract 回傳值型別 抽象方法名稱(參數列); // 沒有方法實體,以 ; 做結尾
- 包含抽象方法的類別,一定要宣告為抽象類別;但是抽象類別不一定有抽象方法
介面 (Interface)
- 定義屬性成員皆為常數 (即預設 public static final),因此必須給定初始值
- 定義方法時,只能為抽象方法 (即預設 public abstract,定義功能的名稱,實作部分留給相關類別 override
- 不一定需要定義方法,即空介面 (ex: java.io.Serializable)
- 只能被實作 (使用 implements 關鍵字),子類別需實作抽象方法 (否則需宣告為抽象類別)
- 子類別實作抽象方法修飾字必須是 public (抽象方法預設使用 public 修飾)
|