如何理解接口回调?
作者:互联网
通过一个简单的例子了解接口回调
先定义两个类: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