接口回调

来源:互联网 发布:个人网络循环贷款利率 编辑:程序博客网 时间:2024/06/01 08:20

1 . 回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法
2 . 接口回调,回调的是接口的方法.这个方法就是回调方法
3 . 首先定义一个接口

package com.qf.demo6;public interface Phone {    public void getResult(String result);}

其次,创建二狗类,要提问问题,但是只能通过皮皮虾类接收问题,皮皮虾类接收问题之后,皮皮虾类里面接口对象调用二狗类中的回调方法(也就是phone.getResult()),输出信息

二狗类:

package com.qf.demo6;/** * 接口回调 * 二狗类中   想要数据,但是二狗类不能直接得到结果, 皮皮虾类中有结果 * 通过一个接口将数据回传 *  * 想要数据的类创建接口对象,并且重写抽象方法, 将接口对象 传递给有数据的类 *  * 有数据的类 通过接口对象 调用 重写的接口的方法 *  *  *  * @author Administrator * */public class TwoDog {// 二狗要问问题    PiPiXia piPiXia = new PiPiXia();    public void askQuestion(){        piPiXia.accepQuestion("1+1=?",new Phone() {            public void getResult(String result) {// "2"                System.out.println(result);            }        });    }//  public void  getResult(String result){//      System.out.println(result);//  }}

皮皮虾类:

package com.qf.demo6;/** * 接口  当做 一个 传输数据工具 *  * @author Administrator * */public class PiPiXia {    public void accepQuestion(String question, final Phone phone){        System.out.println("我要睡觉呢,睡醒了再告诉你");        new Thread(new Runnable() {            public void run() {                System.out.println("一年以后, 皮皮虾睡醒了");                try {                    Thread.sleep(30);                } catch (InterruptedException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }                System.out.println("一年以后, 皮皮虾睡醒了");                phone.getResult("2");            }        }).start();    }}

测试类:

package com.qf.demo6;/** * 二狗    1+1=? * 给皮皮虾打电话    * 皮皮虾说我睡会觉, 睡醒了再告诉你 * 一年以后  皮皮虾属性了, 就想起来  二狗问的问题 * 想办法告诉二狗 结果是 2 * */public class Test {    public static void main(String[] args) {        TwoDog twoDog = new TwoDog();        twoDog.askQuestion();    }}
原创粉丝点击