• 是什么?

    回调也叫钩子,模板方法模式

  • 为什么?

    当不知道某一步该怎么实现或者实现方式有很多种反正都是要被重写的(不如paint有时画圆画方),那么干脆不定义,用回调来实现。钩子一挂,随时换对象,传哪个调哪个

  • 怎么做?

    其实也就是多态

  • 有什么条件?
  1. 将父类对象传入含钩子的类的static方法内(可直接传入接口)

  2. 被传入的父类对象有重写
    代码示例

    package 才cn.haien.CallBack01;
    
    //写一个接口类
    public interface IMyFrame {
        /*默认是 public */void paint();
    }
    
package 才cn.haien.CallBack01;

public class PaintFrame {
public static void drawFrame(IMyFrame f) {
    System.out.println("启动线程");
    System.out.println("增加循环");
    System.out.println("查看消息栈");

    f.paint();

    System.out.println("启动缓存,增加效率");
 }

public static void main(String[] args) {
    drawFrame(new GameFrame01());//传01画圆,传02画方
   }
}

class GameFrame01 implements IMyFrame{
    public void paint() {
        System.out.println("画圆");
       }
    }

class GameFrame02 implements IMyFrame{
public void paint() {
    System.out.println("画方");
   }
}