標題:
抽象類別 VS 介面
[打印本頁]
作者:
周政輝
時間:
2018-3-24 10:12
標題:
抽象類別 VS 介面
本帖最後由 周政輝 於 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 修飾)
[attach]3681[/attach]
作者:
張健勳
時間:
2018-3-24 11:40
[attach]3683[/attach]
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2