Java Interface ——接口回调解析及实例
通常的认知中java的接口就是用来定义一两个功能函数,其实现类来重写实现这些方法,今天给大家介绍一种很受欢迎且有很大益处的使用方法——接口回调(在Android中大量使用)
互不相识的Tom和Jack,在一次偶然的情况下相遇,Tom觉得Jack很有基情,于是想询问他的名字,并且非常渴望得到他的回应。
-Tom:Hi ! What's name ?
-Jack: I'm Jack!
一个很有基情的小伙子一般都会有这种想法,于是我把这种行为定义为一个接口,使每个有基情的小伙子都会有这种行为。
DemoInter接口
public interface DemoInter {
//inquiry one's name
abstract void name(String string);
}
Tom类(实现接口)
public class Tom implements DemoInter{
@Override
public void name(String string) {
System.out.println(string);
}
public void inquiry(){
System.out.println("Hi ! What's your name ?");
}
}
Jack类
Jack类里面定义了一个back(回执)的方法,该方法的参数是DemoInter类型,即所有DemoInter的实现类都可以当参数传递进来。而DenoInter接口定义了一个抽象方法name(String string),在back()方法里面调用传递进来的DemoInter实例的name()方法。
public class Jack {
public void back(DemoInter demoInter){
demoInter.name("Hello ! I'm Jack");
}
}
在Tom类编写main()方法
public class Tom implements DemoInter{
@Override
public void name(String string) {
System.out.println(string);
}
public void inquiry(){
System.out.println("Hi ! What's your name ?");
}
public static void main(String[] args) {
Tom tom=new Tom();
Jack jack=new Jack();
tom.inquiry();
jack.back(tom);
}
}
运行结果:
通过以上的小栗子可以看到,接口回调就是,把某接口的实现类的实例当作变量传递给某个以此接口为形参的函数,利用此参数回调此接口的方法,这就是接口回调。