模版方法 钩子函数 回调函数
在父类里面有一个模版方法,在这个方法里面调用了op1,op2,op3… 在子类里面如果想要改变父类的op1和op2
只需要重写op1和op2,那么这个重写之后的方法,可以在父类里面直接调用的到
例子:
Java AWT里面的Frame类 --> 有setVible方法 --> 自动会调用update和paint方法
Frame的子类只需要实现update和paint方法,重写的方法在父类里面能直接调用的到
public class Main {
public static void main(String[] args) {
F f = new C1();
// 调用模版方法,子类实现的op1和op2被自动调用
f.m();
}
}
abstract class F {
// 模版方法,调用了op1和op2
public void m() {
op1();
op2();
}
// 留给子类去实现
abstract void op1();
abstract void op2();
}
// 子类实现父类里面的方法
class C1 extends F {
@Override
void op1() {
System.out.println("op1");
}
@Override
void op2() {
System.out.println("op2");
}
}