public class TemplateMethodTest {
public static void main(String[] args) {
AbstractClass abstractClass = new Subclass1();
abstractClass.operation();
/**
1111
2222
Subclass1 templateMethod...
*/
}
}
abstract class AbstractClass {
public void operation() {
System.out.println("1111");
System.out.println("2222");
templateMethod();
}
protected abstract void templateMethod();
}
class Subclass extends AbstractClass {
@Override
protected void templateMethod() {
System.out.println("Subclass templateMethod...");
}
}
class Subclass1 extends AbstractClass {
@Override
protected void templateMethod() {
System.out.println("Subclass1 templateMethod...");
}
}