1. 回調函數的定義:
在A類中定義了一個方法,這個方法中用到了一個接口和該接口中的抽象方法,但是抽象方法沒有具體的實現,需要B類去實現,B類實現該方法后,它本身不會去調用該方法,而是傳遞給A類,供A類去調用。
類比:
你(B類)去書店買書,結果發現想買的書賣完了,這時候書店(A類)告訴你他們有來書通知業務(接口和接口中的抽象方法),於是你留下了自己的手機號讓書店有書了給你來電(實現該抽象方法),書店等到有書了以后會根據你留下的電話和方法給你來電提醒你(B類實現的方法由A類來調用)。
2. 使用回調的情況:
- 處理異步請求的返回值
- 同一個事件有不同的處理方法
3. 回調的使用方法:
- 定義接口(public interfact),預定義需要完成的函數
- 定義A類,使用接口和該接口中的抽象方法,同時在初始化A時請求函數B作為callback的參數
- 定義B類(implements interface),設定函數的具體動作,並將B當做參數傳給A,使A在回調時可以找到函數的位置
4. 具體代碼:
- 定義接口
//定義回調接口
public
interface Callback{
void notice();
}
- 定義A類public class A{private CallBack callBack;public A(CallBack callBack){this.callBack = callBack;}public void Operation(){if(callBack != null){callBack.notice();}}}
- 定義B類
public
class B implement CallBack{
public static void main(String args[]) {
A a =
new A(
this);
a.Operation();
}
@Override
public void notice(){
System.out.println(
"Now you get notice!");
}
}