//程序1
public class Caller
{
public MyCallInterface mc;
public void setCallfuc(MyCallInterface mc)
{
this.mc= mc;
}
public void call(){
this.mc.method();
}
}
//定义一个接口
public interface MyCallInterface
{
public void method();
}
//然后让程序2去实现接口
public class B implements MyCallInterface
{
public void method()
{
System.out.println("回调");
}
public static void main(String args[])
{
Caller call = new Caller();
call.setCallfuc(new B());
call.call();
}
}
注:程序2让1调用自己程序中的一个方法,他通过1中的接口回调自己2中的方法,来达到目的,这就是回调。
解释一个main方法的运行过程。 Caller call = new Caller(); 首先new一个对象。
call.setCallfuc(new B()); 紧接着调用方法,传的参数为new B(),该方法的参数为接口,所有实现了接口的类都能够被作为参数传进去(方法中不能传接口)。 call.call(); 然后又调用了call()方法,又因为java的多态,B类重写了method()方法,所以调用this.mc.method()的方法,就会去找mc这个接口的实现方法method()。
打印结果:回调
java回调函数 以及java多态
最新推荐文章于 2024-08-02 17:48:07 发布