接口回调与回调函数java
https://blog.csdn.net/u013278099/article/details/51249594安卓开发接口回调经典案例网络请求
https://blog.csdn.net/Lpppnnn/article/details/78806306 什么是接口回调,接口回调与向上转型的区别,回调函数的理解
1.接口回调与对象的上转型对象用法相同
接口回调是什么[2]?
接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。
nterface 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(); //接口回调 } } //结果: //I’m a student. //I’m a teacher.
什么是向上转型[1]? Shape s=new Circle(); 这里,创建了一个Circle对象,并把得到的引用立即赋值给Shape。通过继承,Circle就是一种Shape。 假设你调用基类方法(它已在导出类中被覆盖): s.draw(); 由于后期绑定(多态),将会正确调用Circle.draw()方法。
向上转型与接口回调的区别 看似向上转型和接口回调是一回事。看下面两句话,均出自Thinking in Java。 使用接口的核心原因:为了能够向上转型为多个基类型[1]。即利用接口的多实现,可向上转型为多个接口基类型(具体见《抽象与接口》章节6)。 从实现了某接口的对象,得到对此接口的引用,与向上转型为这个对象的基类,实质上效果是一样的。(此句摘自Thinking in Java 3rd 接口与内部类一章) 所以,我认为,这两个概念是从两个方面来解释一个行为。接口回调的概念,强调使用接口来实现回调对象方法使用权的功能(下一章节详细分析)。而向上转型则牵涉到多态和运行期绑定的范畴。
2.回调函数。
常用场景:本地程序通过一个线程打开一个网络连接,当网络连接成功或者服务器响应消息传递回来的时候,才能去做接下来的工作。
我们可以看到,得到response的数据之后,调用接口HttpCallbackListener的回调函数onFinish(response.toString()),就把响应的内容传递给了回调函数之内。
主函数调用HttpUtil.sendHttpRequest()方法时,会实现HttpCallbackListener的方法,方法的参数就是response数据,我们就得到了服务器响应的数据。