直接贴一个小demo吧
AbstractCallBackListener类:
/**
* 监听回调抽象类
* @author zisong yue
* @date 2018-12-05
*/
public abstract class AbstratCallBackListener {
void callBackOnStateChang(String message){};
}
Food类:
/**
* @author zisong yue
* @date 2018-12-05
*/
public class Food {
private AbstratCallBackListener listener;
Food(){
this.listener = new AbstratCallBackListener() {
@Override
void callBackOnStateChang(String message) {
System.out.println(message);
}
};
}
void callEatFood(){
EatFood eatFood = new EatFood(listener);
eatFood.startRatFood();
}
public static void main(String[] args) {
Food food = new Food();
food.callEatFood();
}
}
EatFood类:
/**
* @author zisong yue
* @date 2018-12-05
*/
public class EatFood {
AbstratCallBackListener callBackListener;
public EatFood(AbstratCallBackListener callBackListener){
this.callBackListener = callBackListener;
}
void startRatFood(){
callBackListener.callBackOnStateChang("食物吃完了!");
}
}
执行Food类中main方法,测试结果:

我们看到,Food类拿到了EatFood类的执行结果。
本文通过一个具体的Java示例,展示了如何使用抽象类作为回调监听器,实现Food类对EatFood类状态变化的监听。Food类实例化了一个匿名内部类AbstratCallBackListener,并在EatFood类执行时调用其回调方法,传递状态改变信息。
1706

被折叠的 条评论
为什么被折叠?



