在Java中,抽象類是一種不能被實(shí)例化的類,通常用于定義一些共同的屬性和方法,但是具體的實(shí)現(xiàn)需要由繼承它的子類來實(shí)現(xiàn)。抽象類可以包含抽象方法(沒有方法體的方法)和非抽象方法(有方法體的方法),子類必須實(shí)現(xiàn)抽象類中的所有抽象方法,否則子類也必須聲明為抽象類。通過使用抽象類,可以實(shí)現(xiàn)代碼的復(fù)用和提高代碼的擴(kuò)展性。要聲明一個(gè)抽象類,需要使用關(guān)鍵字“abstract”來修飾類。例如:
public abstract class Shape {
protected String color;
public Shape(String color) {
this.color = color;
}
public abstract double getArea();
public void draw() {
System.out.println("Drawing a shape with color: " + color);
}
}
public class Circle extends Shape {
private double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
}