其实就是一个类A中的方法m接收一个类型是接口的参数(形参),该方法中会调用该参数中的方法。
然而参数的类型是接口说明这个接口内的函数都没有实现,仅仅具有一个函数头而已。
所以在方法m中使用这个参数(这个参数类型是接口,可以认为该参数是一个类的实例)中的某个方法时会发现该方法没有函数体。所以在调用方法m时应该传入已经实现该接口的一个类(实参)。
public class ddd {
//ddd类中定义一个接口
public interface onXXXListener{
public void OnXXXListener(); //该函数名一般为on,调用之意
}
private onXXXListener XXXListener;
//该函数名一般为set开头,意为注册
void setonXXXListener(onXXXListener j){
this.XXXListener=j;
}
}
public class ccc {
void test(){
ddd myddd=new ddd();
myddd.setonXXXListener(new onXXXListener(){
//实现了ddd类中的接口,且通过了m函数进行注册
@Override
//在合适的地方系统会自动调用该函数
public void OnXXXListener(){ Log.e("sss","sss");}
});
}
}
或者
public class ddd {
//ddd类中定义一个接口
public interface onXXXListener{
public void OnXXXListener(); //该函数名一般为on,调用之意
}
private onXXXListener XXXListener;
//该函数名一般为set开头,意为注册
void setonXXXListener(onXXXListener j){
this.XXXListener=j;
}
}
public class ccc {
void test(){
ddd myddd=new ddd();
myddd.setonXXXListener(new JieKou2());
}
class JieKou2 implements onXXXListener{
@Override
public void OnXXXListener(){
Log.e("begin eat","sss");
}
}
}
这就是回调技术,供参考。