接口回调

二者实质上效果是一样的。

1.接口回调是什么[2]

接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。

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(); // 接口回调

}

}

结果:

I’m a student.

I’m a teacher.

2.什么是向上转型[1]

Shape s=new Circle();

这里,创建了一个Circle对象,并把得到的引用立即赋值给Shape。通过继承,Circle就是一种Shape。

假设你调用基类方法(它已在导出类中被覆盖):

s.draw();

由于后期绑定(多态),将会正确调用Circle.draw()方法。

  

(向下转型)

class B extends A{}

public class A {

public static void main(String[] argts){

A a1=new A();

A a2=new B();//Upcasting

B b1=new B();

B b2=(B) new A();//DownCasting

}

}

时间: 2024-10-25 21:46:48

接口回调的相关文章

谈谈-Android中的接口回调技术

Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James对Android接口回调技术的理解(结合前人的知识和自己的实践). 使用一个比喻很形象地说明:客户端有个疑问打电话请教服务端,但服务端无法现场给出解答,相互之间约定:服务端一旦有答案,使用电话的方式反馈给客户端. 以上有三个主体:客户端.服务端和接口(方式). 接口回调的原理框图说明: Demo界面

接口回调和向上转型

抄别人的,但为了自己掌握更加的踏实,所以复制到这里,拜谢原创!http://blog.csdn.net/u014025369/article/details/24707525 接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法.实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调.看下面示例.interface People {     void people

接口_ _接口回调机制

在Android中到处可见接口回调机制,尤其是UI事件处理方面,本文给大家介绍android接口回调机制,涉及到android接口回调相关知识,对本文感兴趣的朋友可以参考下本篇文章 在使用接口回调的时候发现了一个经常犯的错误,就是回调函数里面的实现有可能是用多线程或者是异步任务去做的,这就会导致我们期望函数回调完毕去返回一个主函数的结果,实际发现是行不通的,因为如果回调是多线程的话你是无法和主函数同步的,也就是返回的数据是错误的,这是非常隐秘的一个错误.那有什么好的方法去实现数据的线性传递呢?先

Android接口回调机制

开发中,接口回调是我们经常用到的. 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行. 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A可以继续先做别的事情. 那么就只有当B解决完问题后告诉A问题解决了,A才可以能解决这个问题. 代码中比如最常用的: 一个Activity中给按钮一个接口回调方法,只有用户点击了这个按钮,告诉按钮被点击了,才会执行按钮接口回调的方法 Button btn = new Button(this); btn

Java中的接口回调

接口回调是多态的另一种体现.接口回调是指:可以把使用某一个接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法.当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,成为接口回调.不同的类在使用同一接口时,可能具有不同的功能体现.即接口的方法体不必相同,因此接口回调可能产生不同的行为. 接口回调会方便功能的扩展,在主功能外由框架层实现定制功能处理. 现在有两个类,一个是A,一个是B,回调就是A去调用B中的某个方法,然后B又回调A中

学习写接口回调

在做百度地图反地理编码时(坐标转地址), 需要自己写一个结果接口回调,一般在网络请求,点击事件,以及一些异步操作时,需要用到接口回调. 位置管理者,里面有位置监听: /** * 自己写的位置管理者 * Created by xhj on 16-1-27. */ public class TrackerLocationManager { protected TrackerLocationManager() { } /** * 位置管理者实例 */ private static TrackerLoc

笑谈接口回调

接口回调是个比较抽象但是很重要的知识,大多数初学者都会在刚接触它时感觉抓不住要领,但当我们实际掌握它后,会对它爱不释手.废话不多说,让我们开始吧. 我认识新事物的一般有这样的习惯,就是先从事物的名称入手.那么对于接口回调这个新事物,我们能从这个名字中获取多少信息呢?首先是接口,什么是接口呢?相信有一定编程基础的朋友都知道,就是一种规范,但是这种规范在没有实现之前,没有任何作用.就好比招聘广告一样,广告上列出的条件都是宽泛的,如我要招一名熟悉Java的程序员.这是一个规范,你想来应聘就必须满足熟悉

接口回调 入门

有三个类,他们之间的关系如下: interface A class B implements A class C implements A 要获得B类的对象,一般的写法是:B b = new B(); 还有一种写法,叫接口回调,写法是:A b = new B(); 意思是,用接口的变量b,去引用B的对象.接着就可以用b去调用B中的方法.但调用的方法必须是接口里定义了的. 接口回调带来的最大好处就是灵活性,例如必要时可以直接用b去引用C的对象:b = new C(); 例子 interface P

(转)Android之接口回调机制

开发中,接口回调是我们经常用到的. 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行. 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A可以继续先做别的事情. 那么就只有当B解决完问题后告诉A问题解决了,A才可以能解决这个问题. 代码中比如最常用的: 一个Activity中给按钮一个接口回调方法,只有用户点击了这个按钮,告诉按钮被点击了,才会执行按钮接口回调的方法. Button btn = new Button(this); bt

接口对象的实例化在接口回调中的使用

首先澄清一个问题,就是接口不仅可以声明对象,而且可以把对象实例化!作用见下文. 接口回调:可以把实现某一接口类创建的对象的引用赋给该接口声明的接口变量,那么该 接口变量就可以调用被类实现的接口中的方法.实际上,当接口变量调用被类实现的接口 中的方法时,就是通知相应的对象调用接口方法. 我们看下面的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3