在Java中,abstract是一个关键字,用于声明抽象类和抽象方法。抽象类是不能被实例化的,它主要用于被子类继承,并且子类必须实现抽象类中的所有抽象方法。抽象方法是只有方法签名而没有方法体的方法,它只能在抽象类中声明。
抽象类(Abstract Class):
- 定义:使用abstract关键字声明的类称为抽象类。抽象类可以包含抽象方法和非抽象方法。
- 特点:抽象类不能被实例化,即不能直接创建抽象类的对象。但可以被子类继承,子类必须实现抽象类中的所有抽象方法,否则子类也必须声明为抽象类。
抽象方法(Abstract Method):
- 定义:使用abstract关键字声明的方法称为抽象方法。抽象方法只有方法签名,没有方法体。
- 特点:抽象方法必须声明在抽象类中,抽象类中可以包含抽象方法和非抽象方法。任何继承自抽象类的子类都必须实现父类中的所有抽象方法。
abstract class Shape {
abstract double getArea(); // 抽象方法
void display() { // 非抽象方法
System.out.println("Displaying shape");
}
}
class Circle extends Shape {
double radius;
Circle(double r) {
radius = r;
}
// 实现抽象方法
double getArea() {
return Math.PI * radius * radius;
}
}
abstract关键字用于创建抽象类和抽象方法,它们提供了一种抽象的模板,供子类继承和实现。