如何在Java中定义抽象类与抽象方法

抽象类用abstract修饰,不能实例化,可包含抽象和具体方法;2. 抽象方法无方法体,需子类实现;3. 子类继承后必须重写抽象方法,否则需声明为抽象类。

在Java中,抽象类和抽象方法通过 abstract 关键字来定义,主要用于构建模板类,强制子类实现特定行为。

什么是抽象类

抽象类是不能被实例化的类,通常作为基类供其他类继承。它可能包含抽象方法,也可能包含具体方法(已实现的方法)。

使用 abstract class 来定义抽象类:

例如:
abstract class Animal {
    // 具体方法
    void breathe() {
        System.out.println("动物在呼吸");
    }

    // 抽象方法
    abstract void makeSound();
}

什么是抽象方法

抽象方法是没有方法体的方法,只声明不实现,必须在抽象类或接口中定义。子类继承抽象类后,必须实现所有抽象方法,除非子类也声明为抽象类。

抽象方法的语法格式:

abstract 返回值类型 

方法名(参数列表);
注意:抽象方法不能用 privatestaticfinal 修饰,因为它需要被子类重写。

继承抽象类并实现抽象方法

子类通过 extends 继承抽象类,并使用 @Override 注解实现抽象方法。

示例:

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("汪汪汪");
    }
}
此时,Dog 类必须实现 makeSound() 方法,否则编译失败。

使用示例

主程序中可以使用多态调用抽象类引用指向子类对象:
public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog(); // 多态
        dog.breathe();     // 输出:动物在呼吸
        dog.makeSound();   // 输出:汪汪汪
    }
}

基本上就这些。只要记住:抽象类用 abstract 修饰,不能 new;抽象方法没花括号,子类必须去实现。