1。首先回调方法的概念与“构造方法”的概念是不一样的,它不是指java中某个具有特殊意义或用途的方法。
2。称它为方法的“回调”更恰当一些,它是指方法的一种调用方式。任何一个被“回调”的方法,皆可称之为“回调方法”
3。方法的回调通常发生在“java接口”和“抽象类”的使用过程中。
假设有接口名为ICallBack其中有方法名为postExec
有类Myclass实现了该接口,
也就是一定实现了postExec这个方法。
现在有另一个类FooBar它有个方法setCallBack(ICallBackcallBack),
并且setCallBack方法调用了callBack的postExec方法。
如果现在,我们使用一个Myclass的实例myClass,将它作为参数带入到setCallBack(ICallBackcallBack)方法中,我们就说setCallBack(ICallBackcallBack)方法回调了myClass的postExec方法。
//声明一个接口
publicinterfaceActionListener{actionPerformed(ActionEvente);}
//另外一个类有方法里面有个参数以是这个接口类型的
``
publicclassButton{addActionListener(ActionListenerl)//参数为接口{l.actionPerformed(e);}}复制代码
回调的实现
button.addActionListener(newActionListener{//接口的实例化@OverridepublicvoidactionPerformed(ActionEvente){}});复制代码
总结:定义一个接口,在另一个类中提前消费接口中得方法,在实例化时必须传入此接口,但是接口不能实例化,必须实现该接口,继承,匿名类默认继承了该接口