一、说明
所谓接口回调就是指通过接口变量来调用实现该接口的类的该接口所含的方法。这个说法可能有点绕,下面通过例子来说明就会更清晰了。同时也能理解一下接口的优点。
二、例子
接口A1
2
3
4 interface A{
void run();
}
实现类B1
2
3
4
5
6class B implements A{
void run(){
System.out.println("B所实现的方法");
}
}
实现类C1
2
3
4
5
6class C implements A{
void run(){
System.out.println("C所实现的方法");
}
}
实现类D…….
…………
下面我们来看一下调用类Test1
2
3
4
5
6
7
8
9
10
11
12
13public class Test{
public static void main(String[] args){
A a; //声明接口对象
a = new B(); //实例化,接口中存放对实现类B的引用
a.run(); //接口回调,调用B中的run
a = new C();
a.run();//调用C中的run
}
}
对于不同的实现类可以用相同的接口对象来调用。并且同时可以用接口对象调用不同类中的方法,从而提高程序的可扩展性和可维护性。因为我们在想要修改某一功能或者增加一些功能的话,只用去修改相应实现类的方法或者再用新的实现类实现该接口,然后再用接口对象调用就可以了。
对程序代码整体的改动较小。
注:
1.接口回调与向上转型的区别:接口回调是调用实现类中接口所包含的方法。向上转型是调用子类中父类所包含的方法。都是调用上一级所包含的方法,但向上转型由于继承,所以也可以调用父类中继承的方法。
2.要是接口实现类像调用自己特有的方法,即不包含在接口方法中的方法时,直接实例化自己的对象调用就可以了。接口回调调用会失败。