每种语言都有自己回调的方法,java也不例外.
Java的回调是采用多态的方式来回调.比如:
interface MouseListener {
//当click方法被调用的时候代表被鼠标点击了.
void click();
}
上面是一个接口,里面只有一个方法.先就通过一个例子展示java是如果施展多态的力量了.
public class Model {
//初始化50个监听器
private MouseListener[] listeners = new MouseListener[50];
//用于记录当前listeners数组记录到了哪里
int index = 0;
public void addListener(MouseListener listener) {
//向这个model中注册一个监听器
listeners[index++] = listener;
}
public void clickModel() {
//调用注册进来所有的listener的click方法
for (int i = 0; i < index; i++) {
listeners[i].click();
}
}
//测试model
public static void main(String[] args) {
Model model = new Model();
//添加一个匿名内部类,里面实现了click方法.
model.addListener(new MouseListener() {
public void click() {
System.out.println("我被点击了");
}
});
//再添加一个内部类.
model.addListener(new MouseListener() {
public void click() {
System.out.println("我被点击了");
}
});
//下面给model一个点击
model.clickModel();
}
}
转载地址:http://webservices.ctocio.com.cn/java/300/9415300.shtml