java接口回调
2017-08-03 14:33
155 查看
两个类:Dog和Cat,一个接口CallBack。
1 Dog类,实现接口CallBack接口:
public class Dog implements CallBack {
private Cat cat;
public Dog(Cat li){
this.cat=li;
}
public void ask(String s){
System.out.println("dog is asking");
//调用cat的ask方法,并把当前对象注册进去
cat.ask(this,s);
}
//回调函数
@Override
public void solve(String s) {
System.out.println("执行回调函数");
System.out.print(s);
}
}2.Cat类
public class Cat {
private CallBack callBack;
public void ask(CallBack callBack,String s){
System.out.println("cat:ask");
callBack.solve(s);
}
//内部类进行接口回调
public void setCallBack(CallBack callBack){
System.out.println("Cat:setCallBack");
callBack.solve("执行回调函数");
}
}3.测试代码
cat=new Cat();
dog=new Dog(cat);
dog.ask("dog is asking");
4.输出结果:
dog is asking
cat:ask
执行回调函数
dog is asking
分析:dog的ask方法调用cat的ask方法,cat的ask方法回调dog的solve方法,dog的solve方法是回调方法
****匿名内部类实现接口回调****
a.测试代码如下:
cat=new Cat();
cat.setCallBack(new CallBack() {
@Override
public void solve(String s) {
System.out.println("执行回调函数参数-s "+s);
System.out.println("内部类回调函数");
}
});输出结果:
Cat:setCallBack
执行回调函数参数-s 执行回调函数
内部类回调函数
分析:java多态,cat.setCallBack方法把一个实现CallBack接口的对象注册到cat中,实现回调
1 Dog类,实现接口CallBack接口:
public class Dog implements CallBack {
private Cat cat;
public Dog(Cat li){
this.cat=li;
}
public void ask(String s){
System.out.println("dog is asking");
//调用cat的ask方法,并把当前对象注册进去
cat.ask(this,s);
}
//回调函数
@Override
public void solve(String s) {
System.out.println("执行回调函数");
System.out.print(s);
}
}2.Cat类
public class Cat {
private CallBack callBack;
public void ask(CallBack callBack,String s){
System.out.println("cat:ask");
callBack.solve(s);
}
//内部类进行接口回调
public void setCallBack(CallBack callBack){
System.out.println("Cat:setCallBack");
callBack.solve("执行回调函数");
}
}3.测试代码
cat=new Cat();
dog=new Dog(cat);
dog.ask("dog is asking");
4.输出结果:
dog is asking
cat:ask
执行回调函数
dog is asking
分析:dog的ask方法调用cat的ask方法,cat的ask方法回调dog的solve方法,dog的solve方法是回调方法
****匿名内部类实现接口回调****
a.测试代码如下:
cat=new Cat();
cat.setCallBack(new CallBack() {
@Override
public void solve(String s) {
System.out.println("执行回调函数参数-s "+s);
System.out.println("内部类回调函数");
}
});输出结果:
Cat:setCallBack
执行回调函数参数-s 执行回调函数
内部类回调函数
分析:java多态,cat.setCallBack方法把一个实现CallBack接口的对象注册到cat中,实现回调