JavaSE第三章 物件導向 抽象類 abstract

Misa貞喵發表於2020-10-25

3.5 抽象類

3.5.1 概念

  1. 如果一個類中沒有包含足夠的資訊來描繪一個具體的物件,這樣的類就是抽象類。
  2. 抽象類除了不能例項化物件之外,類的其它功能依然存在,成員變數、成員方法和構造方法的訪問方式和普通類一樣。
  3. 用abstract修飾的類就是抽象類。如果某個類中包含有抽象方法,那麼該類就必須定義成抽象類。

3.5.2 抽象方法:

  1. 抽象方法是一種特殊的方法:它只有宣告,而沒有具體的實現
  2. 抽象方法必須用abstract關鍵字進行修飾
  3. 抽象類可以有成員屬性和非抽象的成員方法。
  4. 抽象類不能被例項化,但可以有建構函式,因為抽象類中含有無具體實現的方法,所以不能用抽象類建立物件。
  5. 抽象類只能用作基類,表示的是一種繼承關係。繼承抽象類的非抽象類必須實現其中的所有抽象方法,而已實現方法的引數、返回值要和抽象類中的方法一樣。否則,該類也必須宣告為抽象類。
  6. 構造方法和靜態方法不可以修飾為abstract

3.5.3 一般語法

/**
*
*/
public abstract class Animal {  //抽象類

    private String name;
    
    public abstract void eat();  //抽象方法
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

抽象類,抽象方法,在軟體開發過程中都是設計層面的概念。也就是說,設計人員會設計出抽象類,抽象方法,程式設計師都是來繼承這些抽象類並覆蓋抽象方法,實現具體功能。

相關文章