Java學習--抽象

抽象

abstract關鍵字

使用格式

修飾符 abstract 返回值類型 方法名 (參數列表)
abstract class 類名字 {     }

抽象方法

沒有方法體的方法

使用格式

修飾符 abstract 返回值類型 方法名 (參數列表)

public abstract void run();

抽象類

包含抽象方法的類

使用格式

abstract class 類名字 {     }

public abstract class Animal {     
	public abstract void run(); 
}

使用

繼承抽象類的子類必須重寫父類所有的抽象方法。否則,該子類也必須聲明爲抽象類。
最終,必須有子類實現該父 類的抽象方法,否則,從最初的父類到最終的子類都不能創建對象,失去意義。

注意事項

  1. 抽象類不能創建對象,如果創建,編譯無法通過而報錯。只能創建其非抽象子類的對象。
    理解:假設創建了抽象類的對象,調用抽象的方法,而抽象方法沒有具體的方法體,沒有意義。

  2. 抽象類中,可以有構造方法,是供子類創建對象時,初始化父類成員使用的。
    理解:子類的構造方法中,有默認的super(),需要訪問父類構造方法。

  3. 抽象類中,不一定包含抽象方法,但是有抽象方法的類必定是抽象類。
    理解:未包含抽象方法的抽象類,目的就是不想讓調用者創建該類對象,通常用於某些特殊的類結構設 計。

  4. 抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則,編譯無法通過而報錯。除非該子類也是抽象 類。
    理解:假設不重寫所有抽象方法,則類中可能包含抽象方法。那麼創建對象後,調用抽象的方法,沒有 意義。

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