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 }
通常我们是声明一个类的实例,在调用该类的方法,但有时候我们需要反过来在该类中调用拥有该类对象的类的方法。