天天看點

Java-抽象類

什麼是抽象類

用abstract關鍵字修飾的類就是抽象類

注意點

  1. 抽象類和抽象方法都需要用 abstract關鍵字修飾
  2. 抽象類中可能沒有抽象方法 但是抽象方法一定在抽象類中
  3. 抽象類不能被執行個體化 但有構造函數
  4. 抽象類用于繼承 子類必須全部實作抽象類提供的抽象方法(抽象類是一個規範 一條規矩 必須遵守)
  5. 抽象方法隻需要聲明而不需要實作

抽象類的意義

class Person {
    public void run() { … }
}

class Student extends Person {
    @Override
    public void run() { … }
}

class Teacher extends Person {
    @Override
    public void run() { … }
}
           

如果說父類(Person)本身不需要實作任何功能 僅僅是為了定義方法簽名 讓子類去覆寫

那麼 可以把父類定義為抽象類

public abstract class Person {
    public abstract void getIncome();
}
           

示例

抽象類

package com.oop.demo11;

// 定義一個抽象類
// 相當于 規範 規矩

/**
 * 不能被執行個體化
 * 被abstract修飾的方法就是抽象方法
 * 抽象類用于繼承  子類必須全部實作父類的方法  抽象類是一個規範 一條規矩 必須遵守
 * 抽象類中可能沒有抽象方法 但是抽象方法一定在抽象類中
 */
public abstract class Income {
    public abstract void getIncome();
}
           

子類

package com.oop.demo11;

public class Saray extends  Income {
    @Override
    public void getIncome() {
        System.out.println("繼承了Income抽象類方法");
    }
}
           

測試

package com.oop;


import com.oop.demo11.Saray;

public class Applcation {
    public static void main(String[] args) {
        Saray saray = new Saray();
        saray.getIncome();
    }
}
           

輸出

Java-抽象類

小結

  1. 通過abstract定義的方法是抽象方法 它隻有定義 沒有實作 抽象方法定義了子類必須實作的接口規範
  2. 從抽象類繼承的子類必須實作 全部方法

即使再小的帆也能遠航