Java中什么是接口回调?

Python012

Java中什么是接口回调?,第1张

可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。

实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

Java语言特点

Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。

例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。 

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

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.

可以返回接口,接口虽然不能被实例化,但是接口的实现类都可以向上转型为接口。

所谓面向接口编程是指我们在编写代码时对数据参数的定义尽量写成接口,待真正实现的时候再用实际类型代替,这样编写的好处是,代码的耦合性降低,在运行时我只需修改实现类类型,就可以实现不同的功能,而不必要修改接口的代码。

表面上是返回的接口,其实返回的是接口的实现类。