Skip to content

Java 中的抽象类是一种特殊的类,它不能被实例化。抽象类用于定义具有共同特征和行为的对象的模板。它可以包含普通方法、抽象方法、静态方法和成员变量。

要声明一个抽象类,需要使用关键字abstract来修饰类名。抽象类可以拥有构造方法,但无法直接创建对象。必须通过继承抽象类并实现其中的抽象方法才能创建对象。

抽象方法是没有实现体的方法,只有方法签名。在抽象类中声明的抽象方法必须由子类进行实现。如果一个类继承了抽象类,那么它必须实现所有父类中的抽象方法,否则该类也必须声明为抽象类。下面是一个简单的抽象类的示例:

public abstract class Animal {
    private String name;
    
    public Animal(String name) {
        this.name = name;
    }
    
    public void eat() {
        System.out.println(name + " is eating.");
    }
    
    public abstract void makeSound();
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }
    
    @Override
    public void makeSound() {
        System.out.println("Dog barks.");
    }
}

在上面的示例中,Animal是一个抽象类,它有一个抽象方法makeSound(),以及一个普通方法eat()Dog类继承了Animal类,并实现了makeSound()`方法。

需要注意的是,抽象类不能被声明为final,因为它必须能够被其他类继承和实现其抽象方法。