Java中的abstract關鍵字用于聲明抽象類和抽象方法。
抽象類:使用abstract關鍵字修飾的類稱為抽象類,它不能直接實例化,只能作為父類被繼承。抽象類可以包含抽象方法和非抽象方法。
abstract class Animal {
String name;
abstract void sound(); // 抽象方法
void sleep() {
System.out.println("Animal is sleeping");
}
}
抽象方法:使用abstract關鍵字修飾的方法稱為抽象方法,它沒有方法體,只有方法的聲明,具體的實現由子類實現。
abstract void sound();
子類必須實現抽象類中的抽象方法,否則子類也需要聲明為抽象類。
class Dog extends Animal {
void sound() {
System.out.println("Dog is barking");
}
}
注意:抽象方法不能被聲明為private、static或final,它必須被子類實現,并且不能被實例化。
使用抽象類:
Animal animal = new Dog();
animal.sound(); // 輸出:"Dog is barking"
animal.sleep(); // 輸出:"Animal is sleeping"
void doSomething(Animal animal) {
// ...
}
Animal getAnimal() {
// ...
}
class Cat extends Animal {
void sound() {
System.out.println("Cat is meowing");
}
}