先写一个 接口
interface BackInterface { void backMethond(); }
写一个Student类注意
方法内传参是接口 ,方法内也要调用 这个接口的方法
public class Student { public void doPractice(BackInterface BackInterface) { Log.d("123", "yh吃红肠"); Log.d("123", "yh告诉我吃完一根红肠了..."); BackInterface.backMethond(); } }
写一个Teacher 类
注意要实现这个接口并重写接口里的方法 写一个构造方法把Student当参数传入
class Teacher implements BackInterface { private Student student; public Teacher(Student aa) { this.student = aa; } //老师告诉学生做课堂练习 public void doEvent() { Log.d("123", "老师让yh吃红肠。。。。"); student.doPractice(this); } //用于接收接口回调的消息 @Override public void backMethond() { Log.d("123", "老师接收到yh吃完红肠的消息。。。。"); } }
最后调用
new Teacher 参数填写构造方法传的Student类这样调用doEvetn()方法时 方法内的student.doPractice()方法才不会报错
public class MainActivity5 extends Activity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); Teacher teacher = new Teacher(new Student()); teacher.doEvent(); } }