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");
}
}