接口回调是一种体现多态性的方式。它允许将实现了某一接口的类的对象引用赋给该接口声明的接口变量,从而可以通过接口变量调用类实现的接口中的方法。这样做就相当于通知相应的对象调用接口的方法,也被称为接口回调。当不同的类使用同一接口时,它们可能具有不同的功能实现,也就是说接口中的方法体可以不相同。因此,通过接口回调可以实现不同的行为。
public interface IntefaceHuidiao {
void showMessage();
}
public class PC implements IntefaceHuidiao {
public void showMessage() {
System. out .println( " 我是电脑 !" );
}
}
public class TV implements IntefaceHuidiao {
public void showMessage() {
System.out.println(" 我是电视机 !");
}
}
public class TestIntefaceHudiao {
public static void main(String[] args) {
IntefaceHuidiao ms ;
ms = new TV();
ms.showMessage();
ms = new PC();
ms.showMessage();
}
}
具体怎么解释可能不是特别好解释啊....
给你看看刚写的一段程序好了...很容易理解的...
interface Msg{
void showMessage();
}
class NbMsg implements Msg{
public void showMessage() {
System.out.println("123456");
}
}
class CahrMsg implements Msg{
public void showMessage() {
System.out.println("abcdef");
}
}
public class test {
private Msg msg;
public void show() {
System.out.println("处理一些东西");
msg.showMessage();
}
public void setMsg(Msg msg) {
this.msg = msg;
}
public static void main(String[] args) {
test a = new test();
a.setMsg(new CahrMsg());
a.show();
a.setMsg(new NbMsg());
a.show();
}
}
结果是:
处理一些东西
abcdef
处理一些东西
123456
接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例.
interface people {
void peoplelist();
}
class student implements people {
public void peoplelist() {
system.out.println("i'm a student.");
}
}
class teacher implements people {
public void peoplelist() {
system.out.println("i'm a teacher.");
}
}
public class example {
public static void main(string args[]) {
people a; // 声明接口变量
a = new student(); // 实例化,接口变量中存放对象的引用
a.peoplelist(); // 接口回调
a = new teacher(); // 实例化,接口变量中存放对象的引用
a.peoplelist(); // 接口回调
}
}
结果:
i'm a student.
i'm a teacher.
以上是深入解析Java的接口回调机制的详细内容。更多信息请关注PHP中文网其他相关文章!