抽象类和抽象方法
2025年3月24日大约 2 分钟
抽象类和抽象方法
抽象类是类的一种,在抽象类中可以定义抽象方法,抽象方法没有方法体,只有方法声明
特点
- 抽象类不能被实例化,不能创建对象,只能作为作为一种特殊的父类,让子类实现
- 抽象类中可以定义抽象方法,抽象方法没有方法体,只有方法声明
- 抽象类可以没有抽象方法,但抽象方法必须在抽象类中
- 类有的成员,如 成员变量、方法、构造器,抽象类都可以有
- 一个类继承抽象类,必须重写完抽象类的所有抽象方法,否则这个类也必须是抽象类
写法
抽象类
修饰符 abstract class 抽象类名{
}
抽象方法
修饰符 abstract 返回值类型 方法名(参数列表);
// 抽象类
public abstract class A {
// 抽象方法没有方法体,只有方法声明
public abstract void show();
}
//继承抽象类的子类
public class B extends A{
@Override
public void show(){
System.out.println("show");
}
}
作用
- 在父类可以免于写方法体,可以强制子类重写该方法(更好地支持多态)
模板方法 (设计模式)
提供一个方法作为完成某个功能的模板,模板方法封装实现步骤,但允许子类提供特定步骤的实现
写法
- 定义一个抽象类
- 在抽象类中两个方法
- 一个是模板方法(普通方法),把共同地实现步骤写进去
- 另一个是抽象方法,子类必须重写提供特定步骤
- 最好使用final关键字修饰模板方法
- 防止子类重写导致模板方法失效
作用
- 提高代码的复用性
- 简化子类设计