Java接口回调
在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调。接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解。
举例:老板分派给员工做事,员工做完事情后需要给老板回复,老板对其做出反应。
上面是个比较经典的例子,下面用代码实现上述例子:
(1)先定义一个接口
1 package JieKouHuiDiao; 2 //定义一个接口 3 public interface JieKou { 4 public void show(); 5 }
(2)定义一个Boss类实现接口
1 package JieKouHuiDiao; 2 3 public class Boss implements JieKou{ 4 //定义一个老板实现接口 5 @Override 6 public void show() { 7 System.out.println("知道了"); 8 } 9 10 }
(3)定义一个员工Employee类
1 package JieKouHuiDiao; 2 3 public class Employee { 4 //接口属性,方便后边注册 5 JieKou jiekou; 6 //注册一个接口属性,等需要调用的时候传入一个接口类型的参数,即本例中的Boss和Employee, 7 public Employee zhuce(JieKou jiekou,Employee e){ 8 this.jiekou=jiekou; 9 return e; 10 } 11 public void dosomething(){ 12 System.out.println("拼命做事,做完告诉老板"); 13 //接口回调,如果没有注册调用,接口中的抽象方法也不会影响dosomething 14 jiekou.show(); 15 } 16 17 }
(4)测试类
package JieKouHuiDiao; public class Test { public static void main(String[] args) { Employee e=new Employee(); //需要调用的时候先注册,传入Boss类型对象和员工参数 Employee e1=e.zhuce(new Boss(),e); e1.dosomething(); } }
通过上面的例子和代码应该有个比较初步的了解了,接口回调还有使用匿名内部类来实现,但是我觉得没有这种理解清晰,所以你懂得,记住这个,理解它就欧了
原文:http://www.cnblogs.com/wangming007/p/5122701.html