📅  最后修改于: 2023-12-03 15:01:28.364000             🧑  作者: Mango
在 Java 中,abstract
是一个修饰符,它可以用来修饰类和方法。abstract
类不能被实例化,而 abstract
方法需要在子类中被实现。
抽象类是一种特殊的类,它不能被实例化,其作用是为了被子类继承。抽象类通常包含一些抽象方法,这些方法需要在子类中被具体实现。抽象类中也可以包含一些非抽象方法,这些方法可以被子类直接继承和调用。
定义一个抽象类,需要用 abstract
关键字来修饰,例如:
public abstract class Animal {
abstract void run();
void sleep() {
System.out.println("睡觉中...");
}
}
在上面的例子中,Animal
类是一个抽象类,其中包含一个抽象方法 run()
和一个非抽象方法 sleep()
。抽象方法没有方法体,子类必须实现该方法。
public class Dog extends Animal {
void run() {
System.out.println("狗在奔跑...");
}
}
在上面的例子中,Dog
类继承自 Animal
类,并实现了 run()
方法。Dog
类可以直接调用 sleep()
方法,因为它已经被继承了。
抽象方法是一种没有实现的方法,它需要在子类中被具体实现。抽象方法的语法和普通方法类似,只是需要用 abstract
关键字来修饰,并省略方法体。例如:
public abstract class Shape {
abstract double getArea();
}
在上面的例子中,Shape
类包含一个抽象方法 getArea()
,该方法没有具体实现。子类必须实现 getArea()
方法,否则子类也必须是抽象类。
public class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
double getArea() {
return width * height;
}
}
在上面的例子中,Rectangle
类继承自 Shape
类,并实现了 getArea()
方法。如果 Rectangle
类没有实现 getArea()
方法,那么它也必须是抽象类。
abstract
是一个修饰符,可以用来修饰类和方法。