天天看點

Java抽象

文章目錄

資料抽象是隐藏某些細節并僅向使用者顯示基本資訊的過程。抽象可以通過抽象類或 接口來實作,這個我後面會補充。

該abstract關鍵字是一個非接入改性劑,用于類和方法。

  • 抽象類:是一個受限制的類,不能用于建立對象(要通路它,它必須從另一個類繼承)。
  • 抽象方法:隻能在抽象類中使用,并且沒有主體。主體由子類提供(繼承自)。

抽象類可以同時具有抽象方法和正常方法:

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}      

從上面的示例中,無法建立 Animal 類的對象,如果你通路就會報錯。

舉個完整的例子:

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}
      

運作:

Java抽象