1. 程式人生 > 實用技巧 >Java基礎語法:abstract修飾符

Java基礎語法:abstract修飾符


一、簡介

描述:

  • 'abstract'修飾符可以用來修飾方法,也可以修飾類。
  • 如果修飾方法,那麼該方法就是抽象方法;如果修飾類,那麼該類就是抽象類
  • 抽象類和抽象方法起到一個框架作用,方便後期擴充套件的重寫和呼叫。

注意:

  • 抽象類中可以沒有抽象方法,但是有抽象方法的類一定要宣告為抽象類

示例:

/* 抽象類的命名規範為以Base或Abstract開頭 */
public abstract class BasePerson {
    /* 抽象方法,沒有方法實現 */
    public abstract void doSomething();

    public void say() {
        System.out.println("person");
    }
}




二、抽象方法

描述:

  • 宣告方法的時候,加上'abstract'修飾符,並且去掉方法的大括號,同時結尾加上分號,該方法就是抽象方法
  • 抽象方法只有方法的宣告,沒有方法的實現(沒有方法體),它是用來讓子類實現的。

作用:

  • 抽象方法是為了程式的可擴充套件性,重寫抽象方法可實現方法同名但又非同目的的要求。
  • 定義抽象方法,在需要時繼承後重寫呼叫,可以省去很多程式碼。




三、抽象類

描述:

  • 宣告類的同時,加上'abstract'修飾符就是抽象類
  • 抽象類不能使用'new'關鍵字來建立物件,它是用來讓子類繼承的。

注意:

  • 子類繼承抽象類後,需要實現抽象類中沒有實現的抽象方法,否則這個子類也要宣告為抽象類。
  • 抽象類不能被例項化,但有構造器,會在子類例項化時呼叫,是用來實現多型中的共同點構造,一般不建議使用。

示例:

public abstract class BasePerson {
    public abstract void doSomething();
}
/* 子類繼承抽象類後,需要實現抽象類中沒有實現的抽象方法。 */
class Student extends BasePerson {
    public void doSomething() {
        System.out.println("doSomething");
    }
}