Java 抽象
抽象類和抽象方法
資料抽象是隱藏某些細節,只向用戶顯示基本資訊的過程。
抽象可以透過抽象類或介面來實現(您將在下一章中瞭解更多資訊)。
abstract
關鍵字是一個非訪問修飾符,用於類和方法
- 抽象類:是一種受限制的類,不能用於建立物件(要訪問它,必須從另一個類繼承)。
- 抽象方法:只能在抽象類中使用,並且沒有主體。主體由子類(繼承自)提供。
抽象類可以同時擁有抽象方法和普通方法
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
從上面的例子中,無法建立 Animal 類的物件
Animal myObj = new Animal(); // will generate an error
要訪問抽象類,它必須從另一個類繼承。讓我們將 多型 章中使用的 Animal 類轉換為抽象類
請記住,在繼承章中,我們使用 extends
關鍵字從一個類繼承。
示例
// 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();
}
}