五、模板设计模式
在抽象类中声明多个类都要使用的方法,之后多个类继承抽象类,重写方法。
类似动态绑定机制
//测试类
class test{
public static void main(String[] args){
zi son = new zi();
son.month();
//解析:
// 1.首先在zi类中找month方法,没找到;
// 2.然后去父类中找,找到了;
// 3.执行到work方法,走抽象方法到子类中去找;
// 4.子类执行完后再回到父类;
}
}
//抽象类
class abstract fu{
public abstract void work();
//一般还会存在一个钩子方法(这个方法可以让子类来决定公共逻辑)
public boolean isTF(){
return true;
}
//这里是公共逻辑使用处,一般用final修饰
public final void month(){
if(isTF){
work();
}
}
}
//子类
class zi extends fu{
//在构造方法中可以改变这个布尔值
public boolean isTF;
//重写抽象方法
@Overrid
public void work(){
System.out.println("重写");
}
}