Java的回调函数

 1 package com.hu.callback;
 2 /*一个类Caller中声明接口类型并调用接口的虚函数
 3  * 而使用该类的类MyCall又实现了该接口,则该类必须实现接口中的虚函数
 4  * 这样Caller中调用虚函数时也就回调了MyCall中重写的函数fun
 5  */
 6 
 7 public class MyCall implements CallInterface{
 8     public static void main(String[] args) {
 9         MyCall mc=new MyCall();
10         Caller caller=new Caller(mc);
11         caller.call();
12     }
13 
14     @Override
15     public void fun() {//这是回调函数
16         System.out.println("回调函数");
17     }
18 }
19 
20 interface CallInterface{//接口
21     public void fun();
22 }
23 
24 class Caller{
25     CallInterface ci;//类中声明了一个接口
26     public Caller(CallInterface ci){
27         this.ci=ci;
28     }    
29     /*
30      * call方法调用ci的虚函数,虚函数没有实现,所以我不知道fun具体内容是什么
31      * 但只要谁实现了CallInterface这个接口,他就要重写fun方法
32      * 他如果实例化我,我就知道fun的具体内容了,我就可以回调他的fun方法
33      */
34     public void call(){
35         this.ci.fun();
36     }
37 }

通常我们是声明一个类的实例,在调用该类的方法,但有时候我们需要反过来在该类中调用拥有该类对象的类的方法。

posted @ 2012-06-11 16:49  丛林听雨  阅读(134)  评论(0编辑  收藏  举报