Java 中有所謂的抽象類別,在他的API中,亦大量使用抽象類別,而抽象類別是什麼呢?海芋就將他整理如下:
(1) 目的:讓程式設計師能依據此類別,來修改或建立新的類別。
(2) 格式:
abstract class 類別名稱 { 資料成員; 抽象方法; 實體方法; }
其中,抽象方法不能定義處理方法,且其修飾子亦不能為private,否則子類別無法繼承,進而無法改寫;而資料成員亦可不必初始化,可以由子類別實做並初使化。
(3) 子類別可繼承自抽象類別,並改寫抽象類別中,未定義的處理方式的抽象方法,或是已定義處理方式的方法或變數,但仍然要遵守單一繼承的規定。而抽象類別亦可以存取被子類別物件中,被子類別改寫的成員。
(4) 抽象類別不能用來直接建立物件,因為其定義未有明確的定義。
(5) 若子類別未能改寫父抽象類別中所定義的抽象方法,則此子類別亦需宣告為抽象類別。
(6) 抽象類別比較常用在產品的內部,如USB的接頭是固定的,但是傳輸速度可能會所差異,傳輸速度便可宣告為抽象類別,再由子類別去實做。
(7) 不需要使用迂迴的方式去找出實體類別間的對應關係,所以與介面的速度相比之下,較為快速。
剩下的有想到再補吧!有錯也歡迎指正唷!