阅读量:0
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"); } }