举例说明理解过程
程序A中调用程序B,而B要求A调用自己的方法C,这样,对于B来说,方法C就是回调函数。似乎是B不会自己调用C方法,仅提供给A调用的。一般这样处理,将C方法的调用存放在A中的某个方法中,这样调用A中的这个方法就实现了调用B中的方法。
实例:
定义调用接口,提供抽象方法
public interface CallBack {
void call();
}
定义程序A:
public class A {
private CallBack c ;
public void setCallBack(CallBack c){
this.c=c;
}
public void call(){
c.call();//回调接口CallBack中的方法
}
}
定义程序B:
public class B implements CallBack{
@Override
public void call() { //覆盖call方法
// TODO Auto-generated method stub
System.out.println("显示回调");
}
public static void main(String[] args) {
A a = new A();
a.setCallBack(new B());//通过向上转型,根据后期绑定方式获取B类的方法Call。实际执行的是B的call方法。
a.call();
}
}