从维基百科上面摘抄定义:(看完本篇文章再来理解这个定义)
在使用时实现接口:
在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。
在Java里面,我们使用接口来实现回调。
这篇文章中的解说定义非常好:http://blog.youkuaiyun.com/sweetwxh/article/details/2067139
所谓的回调,就是程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。
调用程序如下:
public class Caller {
public void caller(MyCallInterface callInterface) {
callInterface.printName();
}
}
需要调用的程序如下,使用接口方式:
public interface MyCallInterface {
public void printName();
}
在使用时实现接口:
<pre name="code" class="java">public class MyCallInterfaceImpl implements MyCallInterface {
@Override
public void printName() {
System.out.println("开始打印名字了");
}
}
客户端开始调用方法了:
public class Client {
public static void main(String[] args) {
Caller caller =new Caller();
MyCallInterface myCallInterface =new MyCallInterfaceImpl();
caller.caller(myCallInterface);
}
}
也就是说Caller调用了另一个程序中的方法,也可以使用匿名内部类的方法来做:
public class Client {
public static void main(String[] args) {
Caller caller =new Caller();
caller.caller(new MyCallInterface() {
@Override
public void printName() {
System.out.println("使用匿名内部类的方式来做");
}
});
}
}