其他分享
首页 > 其他分享> > 如何理解接口回调?

如何理解接口回调?

作者:互联网


通过一个简单的例子了解接口回调

先定义两个类:A类B类

A类:

class A{
    private C c ``= null;
    interface C{
        int get(int i);
    }
    public void setc (C c) {
        this.c = c;
    }
    public void printi(){
        System.out.println(c.get(10));//注意:在A类内部并没有实现接口C中的get方法
    }
}

注意:在A类内部并没有实现接口C中的get方法,即无法使用。

B类:

public class B{
    public static void main(String[] args) {
        A a = new A();
        a.setc(new A.C() {
            //在这实现方法
            @Override
            public int get(int i) {
                return i;
            }
        });
        a.printi();//这个时候可调用A类中的printi方法
    }
}

通过代码分析可知,在A类中并没有实现接口C中的get方法,但是在A类中的printi方法中中却调用了get方法,按理来说执行printi方法时会报错,但是由于在B类中实现了get方法并传递给了A类中的接口变量c,因此可以执行printi方法。

通俗的理解就是,我通过接口定义了一个方法c,但我不实现,我外包给其他类来实现它,其他类实现后通过接口变量把方法给我。

标签:get,接口,理解,printi,回调,方法,public,类中
来源: https://www.cnblogs.com/yerCoder/p/16441216.html