[Java] 什麼是抽象類別 (abstract class)呢?

Java 中有所謂的抽象類別,在他的API中,亦大量使用抽象類別,而抽象類別是什麼呢?海芋就將他整理如下:

(1) 目的:讓程式設計師能依據此類別,來修改或建立新的類別。

(2) 格式:

abstract class 類別名稱
{
資料成員;
抽象方法;
實體方法;
}

其中,抽象方法不能定義處理方法,且其修飾子亦不能為private,否則子類別無法繼承,進而無法改寫;而資料成員亦可不必初始化,可以由子類別實做並初使化。

(3) 子類別可繼承自抽象類別,並改寫抽象類別中,未定義的處理方式的抽象方法,或是已定義處理方式的方法或變數,但仍然要遵守單一繼承的規定。而抽象類別亦可以存取被子類別物件中,被子類別改寫的成員。

(4) 抽象類別不能用來直接建立物件,因為其定義未有明確的定義。

(5) 若子類別未能改寫父抽象類別中所定義的抽象方法,則此子類別亦需宣告為抽象類別。

(6) 抽象類別比較常用在產品的內部,如USB的接頭是固定的,但是傳輸速度可能會所差異,傳輸速度便可宣告為抽象類別,再由子類別去實做。

(7) 不需要使用迂迴的方式去找出實體類別間的對應關係,所以與介面的速度相比之下,較為快速。

剩下的有想到再補吧!有錯也歡迎指正唷!

About 張海芋

城市裡的小小迷僮工程師,喜歡用鍵盤記錄個人生活的點滴,身邊的人事物都我的靈感,用心踏出每個腳步,用文字灌溉《海芋小站》,用專業解決問題。

發表迴響