一、首先是摘自一篇博客对回调函数的理解(后面会注明出处)
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,
店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,
你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,
你到店里去取货叫做响应回调事件
二、是代码的一些说明
1、
1 package cn.test1; 2 3 /** 4 * 店员 5 * @author Administrator 6 * 7 * 店里留有你的电话号码 8 * 电话号码 是回调函数 9 * 10 */ 11 public class A { 12 13 14 //无参构造方法 15 public A(){ 16 17 } 18 19 //声明存在电话号码 20 private CallBack callBack; 21 22 //登记电话号码 23 public void setCallFunc(CallBack callBack){ 24 this.callBack = callBack; 25 } 26 27 //打电话 28 public void call(){ 29 callBack.printName(); 30 } 31 }
2、
1 package cn.test1; 2 3 /** 4 * 5 * 我 客户 6 * 继承CallBack接口 7 * @author Administrator 8 * 9 */ 10 public class B implements CallBack{ 11 12 @Override 13 public void printName() { 14 15 System.out.println("留下自己的电话号码"); 16 } 17 18 }
3、
1 package cn.test1; 2 3 4 /** 5 * 这个接口是 6 * 能让你留下你的电话号码 7 * @author Administrator 8 * 9 */ 10 public interface CallBack { 11 12 /** 13 * 声明一个回调函数 14 * B实现这个函数是为了留下电话号码 15 */ 16 public void printName(); 17 }
4、
1 package cn.test1; 2 3 /** 4 * 测试 5 * @author Administrator 6 * 7 */ 8 public class Test { 9 10 public static void main(String[] args) { 11 12 A a = new A(); 13 14 //a从b中获取号码 15 a.setCallFunc(new B()); 16 17 //调用自己的行为 打电话的方法 18 a.call(); 19 } 20 }
参考博客:
http://blog.csdn.net/webgeek/article/details/17261137 Callback回调机制知识大全
http://blog.csdn.net/allen_zhao_2012/article/details/8056665 回调函数透彻理解Java