定义:定义一个过程中的算法骨架,而将算法的一些步骤延迟到子类中。
这么做是为了将不变的部分封装到父类中实现,而将可变部分的算法由子类继承实现,便于扩展。
模板结构:
代码示例:
public abstract class AbstractClass {
public void templateMethod(){
specificMethd();
abstractMethod1();
abstractMethod2();
}
void specificMethd(){
System.out.println("抽象类实现的方法");
}
abstract void abstractMethod1();
abstract void abstractMethod2();
}
public class ConcreteClass extends AbstractClass {
@Override
void abstractMethod1() {
System.out.println("子类实现的方法1");
}
@Override
void abstractMethod2() {
System.out.println("子类实现的方法2");
}
}
测试代码:
public static void main(String[] args) throws InterruptedException, CloneNotSupportedException {
AbstractClass abstractClass=new ConcreteClass();
abstractClass.templateMethod();
}
原文:https://www.cnblogs.com/javammc/p/14967890.html