Java中的抽象類與abstract關鍵字

參考:
https://www.cnblogs.com/dolphin0520/p/3811437.html
Java編程思想

抽象方法的定義形式

無論是抽象類,還是抽象方法,都使用關鍵字abstract進行修飾。在講述抽象類之前,首先介紹一下抽象方法。抽象方法僅有聲明,而沒有方法體。對應的語法格式爲:

[訪問權限修飾符] abstract void methodName();

抽象方法只聲明返回值類型、方法名稱和形參列表,沒有方法體。
需要注意的,構造方法(實際就是static的),類方法(用static修飾的方法)都不能聲明爲抽象方法。

抽象類

抽象類的定義形式爲:

[public] abstract class ClassName {
    // 類體
}

和普通類一樣,抽象類同樣可以擁有成員變量,構造方法(也稱構造器)和普通的成員方法。但是抽象類不一定包含抽象方法。如果想阻止這個類產生任何對象,將類聲明爲抽象類就是有意義的。如果一個類含有一個或者多個抽象方法,那麼該類就必須使用abstract聲明爲抽象類。值得注意的是,即使有構造方法,抽象類也無法被實例化。
由於抽象類不能被實例化,所以抽象類必須被繼承,才能被使用。當我們繼承一個抽象類時,那麼會出現2種結果。
1)實現了所繼承抽象類中所有的抽象方法,從而使繼承了抽象類的類成爲一個具體類。
2)未完全實現抽象類中所有的抽象方法,那麼該類繼續使用abstract聲明爲抽象類。
而實現的方法的形參列表,返回值類型要和抽象類中的方法一樣。當子類實現抽象類中的抽象方法,這個過程其實就是覆蓋。同樣的,子類實現接口中的抽象方法也是覆蓋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章