java的接口回调,在android下用的是越来越多了,到底该怎么理解他呢?
好比是一个领导和一个下属,还有一个下属间谍三个人之间不清不楚的关系
1、下属有一个吃饭的事情……
(定义接口)
2、领导发表申明,说对下属的吃饭这件事感兴趣,并说了如果下属吃饭,他就怎么样怎么样,但是老板就是老板,总不能一直盯着下属所以……
(实现接口,并实现处理监听事件的方法)
3、领导一说话,间谍就去了下属那,并且领导给了间谍特权,可以使用我的怎么样怎么样方法
(建立于接口的连接,实际上是一个向上转型的过程,把间谍upcase为一个领导,从而调用领导的方法)
4、,然后只要一吃饭,间谍就通知领导,并替领导完成什么样什么样的事情
(通过接口的实例,调用接口中的方法)
这样一说,大家应该对接口回调的机制有了点感性的理解了吧。
interface People{ void peopleList(); } class Student implements People{ public void peopleList(){ System.out.println("I’m a student."); } } class Teacher implements People{ public void peopleList(){ System.out.println("I’m a teacher."); } } public class Example{ public static void main(String args[]){ People a; //声明接口变量 a=new Student(); //实例化,接口变量中存放对象的引用 a.peopleList(); //接口回调 a=new Teacher(); //实例化,接口变量中存放对象的引用 a.peopleList(); //接口回调 } }
通过接口,我们将大量共通但实现细节不同的方法抽象出来,再去实现它的接口类中具体处理,这样通过接口去调用方法的时候,就不用考虑具体调用哪个方法了。
这是一种用法,大致是多态的意思,还有一种用法就是组件中的通信:
例如Fragment间的通信
1、在Fragment中定义接口,申明接口的实例,在onAttach()方法中实现接口实例化为Activity对象
2、在Fragment中的某个方法内,使用接口的实例,调用Activity的方法,向Activity通信
3、Activity实现接口与结构内的方法,实现处理回调的逻辑
Java接口回调是个什么玩意儿,布布扣,bubuko.com
原文:http://blog.csdn.net/eclipsexys/article/details/22729289