抽象类(Abstract Class)是面向对象编程中的一个概念,它是一个不能被实例化的类,也就是说,你不能直接创建一个抽象类的对象。抽象类通常包含抽象方法(没有具体实现的方法)和/或具体方法。
以下是抽象类的一些关键特点:
1. 抽象方法:抽象类中的抽象方法没有具体实现,只是声明了方法签名。这些方法需要在子类中被具体实现。
2. 具体方法:抽象类可以包含具体方法,这些方法有具体的实现,可以直接在抽象类中使用。
3. 不能实例化:由于抽象类包含了抽象方法,它不能被直接实例化。只有当所有抽象方法都被子类实现后,子类才能被实例化。
4. 继承:抽象类通常被其他类继承,这些继承的类被称为具体类(Concrete Class)。具体类必须实现所有从抽象类继承来的抽象方法。
5. 设计目的:抽象类通常用于定义一个通用接口,它规定了子类必须实现的方法,但具体实现留给子类去完成。
在Java中,抽象类使用`abstract`关键字来声明。以下是一个简单的抽象类示例:
```java
public abstract class Animal {
// 抽象方法
public abstract void makeSound();
// 具体方法
public void eat() {
System.out.println("This animal eats food.");