安卓回调机制的一点理解

2年前 (2022) 程序员胖胖胖虎阿
245 0 0

主要看了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

安卓回调机制的一点理解

 

 父类不需要关系子类对接口类的方法的具体实现,实在是回调函数的完美工具。

版权声明:程序员胖胖胖虎阿 发表于 2022年9月11日 下午4:00。
转载请注明:安卓回调机制的一点理解 | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...