基本步骤
- 写出一个接口类CallBack,该接口有一个方法名为AFunction, AFunction 即为class B回调时候使用的方法
- 写一个class A实现接口CallBack,即A中应该重写了AFunction
- class A中有一个方法 BFunction ,其中一个参数为class B的引用b,该方法中调用了calss B的一个方法 CFunction
- class B有一个参数为callback的方法 CFunction (CallBack callback),在该方法中使用callback. AFunction ()完成回调
- 实例化一个对象A,实例化一个对象B,调用A的 BFunction 方法将B作为参数传入,
以下代码中,doHomeWork接口是CallBack接口,finishHomeWork是AFunction,student类为class A,doHomeworkByRommate是 BFunction ,roommate类为class B, DoStudentHomeWork为CFunction
doHomeWork.java
package a;
public interface doHomeWork
{
void finishHomeWork(String answer);
}
student.java
package a;
public class student implements doHomeWork{
public void doHomeworkByRommate(String question,roommate b)
{
b.DoStudentHomeWork(question,this);
}
@Override
public void finishHomeWork(String answer) {
System.out.print("done.answer is "+answer);
}
}
roommate.java
package a;
public class roommate{
public void DoStudentHomeWork(String question,doHomeWork student)
{
String answer="aaa";
student.finishHomeWork(answer);
}
}
main.java
package a;
public class Main {
public static void main(String[] args) {
student a=new student();
roommate b=new roommate();
a.doHomeworkByRommate("question",b);
}
}
运行结果:
ShellScript
done.answer is aaa