在Java中定义抽象类需使用`abstract`关键字,并满足以下规则:
声明抽象类 使用`abstract`关键字声明类,表明该类不能被直接实例化。
包含抽象方法
抽象类必须至少包含一个未实现的方法(抽象方法),使用`abstract`关键字声明,且无方法体。
支持普通方法
可包含已实现的方法(普通方法),这些方法有具体实现。
构造函数与成员变量
可定义构造函数和成员变量,与普通类一致。
子类实现要求
继承抽象类的子类必须实现所有抽象方法,否则子类也需声明为抽象类。
示例代码
```java
// 定义抽象类 Animal
public abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
// 普通方法
public void eat() {
System.out.println("This animal eats food.");
}
// 抽象方法
public abstract void makeSound();
}
// 子类 Dog 实现抽象类
public class Dog extends Animal {
public Dog(String name) {
super(name);
}
@Override
public void makeSound() {
System.out.println("Woof! Woof!");
}
}
```
注意事项:
抽象类不能被实例化,只能通过子类继承使用。若子类未实现所有抽象方法,需声明为抽象类。