主要看了https://blog.csdn.net/Wei_Smile/article/details/51040034此文后的一点点理解
public class Employee {
/*
* 定义回调接口的成员变量
*/
private CallBack mCallBack;
/*
* 声明回调接口
*/
public interface CallBack{
public abstract void work();
}
/*
* 设置回调接口对象成员变量
*/
public void setCallBack(CallBack callBack) {
this.mCallBack = callBack;
}
/*
* 调用回调接口对象中的方法
*/
public void doWork() {
mCallback.work();
}
}
这段代码里,在安卓系统的view事件触发后调用doWork函数,即执行mCallback对象的work方法,mCallback是一个接口类(不会java不知道可以这样说么)。此接口类在setCallBack方法中,被传入的实例化的callBack接口(这样说可能不对)修改了,如下:
public class Boss {
private Employee employee;
/*
* 为Employee设置回调函数, 在这里定义具体的回调方法
*/
employee.setCallback(new Employee.Callback() {
@Override
public void work() {
System.out.println("work");
}
});
}
这样可以任意overide接口类中的抽象方法work,此时就成功让自己overide的work方法被回调执行。
另外对
this.mCallBack = callBack;
可参考廖雪峰博客面向抽象编程的概念https://www.liaoxuefeng.com/wiki/1252599548343744/1260456371027744
向上转型https://www.liaoxuefeng.com/wiki/1252599548343744/1260454548196032
父类不需要关系子类对接口类的方法的具体实现,实在是回调函数的完美工具。
相关文章
暂无评论...