Java接口回调是个什么玩意儿

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

Java接口回调是个什么玩意儿

上一篇:vue-cli Failed to download repo vuejs-templates/webpack: connect ETIMEDOUT


下一篇:pyscws4 是一个python的分词程序