史上最通俗易懂的接口回调

来源:互联网 发布:nginx的内置对象 编辑:程序博客网 时间:2024/06/07 02:59

接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调.
首先得说明一下,这个接口回调是用java语言写的,并且是你所能遇见写法最简单,你一看就懂得。废话不多少,直接上代码

一,被调用部分的写法

public class SecondActivity {private String a="这是我要传递的字符串(看log里面显示)。";//声明接口实例    public Data_jiekou data_jiekou;public static void main(String[] args) {// TODO 自动生成的方法存根}//用户自定义要传递的数据,写在dis()方法里    public void dis(){        data_jiekou.callAll(a);    }  //创建接口    interface Data_jiekou{        void callAll(String result);    }  //将传递过来的接口实例data_jiekou赋值给本类声明的接口实例public Data_jiekou data_jiekou    public void setData_jiekou(Data_jiekou data_jiekou){        this.data_jiekou=data_jiekou;    }}
步骤:1,创建接口Data_jiekou,在接口里面创建抽象方法(解释:这个方法需要在另外一个类中实现,达到回调接口的目的);
    2,声明接口实例,并提供setData_jiekou(Data_jiekou data_jiekou)方法对接口实例进行实例化(解释:不至于声明的接口实例为null);

    3,提供调用方法dis()( 解释:其他的类通过调用dis()方法触发callAll()抽象方法的调用,该抽象方法值入需要传递的值如这里的a字符串,然后在其他类中实现callAll(String result)就会将a传递过去,以此实现接口会掉的额目的)

    自此这里就写完了,然后看调用部分:

调用部分的写法(即如何使用这个接口回调)

public class MainActivity implements SecondActivity.Data_jiekou{static SecondActivity secondActivity= new SecondActivity();public static void main(String[] args) {// TODO 自动生成的方法存根MainActivity mainActivity=new MainActivity();//回传接口的实例this.data_jiekou=data_jiekou;secondActivity.setData_jiekou(mainActivity);// 调用另外一个类的dis()方法,获取的结果会以接口回调的方式显示在callAll(String result)方法中secondActivity.dis();}@Overridepublic void callAll(String result) {// TODO 自动生成的方法存根System.out.println(result);}}

步骤:1,实现接口SecondActivity.Data_jiekou中的方法
    2,声明实例对象(实例对象为secondActivity)调用setData_jiekou方法,将接口(mainActivity)回传过去;

    3,调用dis()方法查看接口

    自此这里也写完了,很简单吧

结果查看如图(如有不理解的地方这里留下QQ634941757)