A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小子考驾照 中级黑马   /  2014-8-24 23:50  /  1079 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

使用接口  (摘自网络,总结的不错)
   
  也就是使用多态来实现回调函数   
   
public interface ICallback {
  public void   func();
}
   
public class ClassWithCallbackFunction implements ICallback{
  public ClassWithCallbackFunction() {
  }
  public void func(){
    System.out.println("cccccccccccccccccc");
  }
}
   
public class Caller {
  ICallback callback;
  public void doCallback() {
    callback.func();
  }

  public void setCallback(ICallback callback) {
    this.callback = callback;
  }

}
   
public class MainClass {
  public MainClass() {
  }

  public static void main(String[] args) {
    Caller caller = new Caller();
    caller.setCallback(new ClassWithCallbackFunction() {
      public void func() {
        System.out.println("aaaaaaaaaa");
      }
    });
    caller.doCallback();
  }
}  
现实中是把doCallback()方法放在setCallback里调用,以上是为了说明回调原理
public class Caller {
  ICallback callback;
  public void doCallback() {
    callback.func();
  }

  public void setCallback(ICallback callback) {
    this.callback = callback;
    doCallback();
  }

}

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
不错的总结,加油!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马