导航:首页 > 方法技巧 > 如何触发所有实现接口的方法

如何触发所有实现接口的方法

发布时间:2025-03-01 03:08:11

⑴ JAVA中 接口是什么 接口的回调是什么

Java接口是一系列方法的声明,是方法特征的集合,接口中只有方法特征没有方法实现,不同的类可以实现这些方法,并具有不同的行为。接口有两个含义:一种是Java语言中的结构,另一种是类所具有的方法特征集合。前一种被称为“Java接口”,而后一种则称为接口。

接口回调是指将使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,然后调用被类实现的接口中的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。

下面是一个示例:接口定义如下:

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接口实现回调函数的等价功能,熟悉MS-Windows和X Window System事件驱动编程模型的开发人员,习惯于传递在某种事件发生时调用(即“回调”)的函数指针。Java的接口支持提供了一种获得回调的等价功能的机制。

定义一个简单接口并在接口中声明我们要调用的方法,例如定义一个接口:

InterestingEvent.javapackage org.zj.sample;
public interface InterestingEvent {
public void interestingEvent ();
}

这使得我们可以控制实现该接口的类的任何对象。因此,我们不必关心任何外部类型信息。发出事件信号的类必须等待实现了InterestingEvent接口的对象,并在适当时候调用interestingEvent()方法。

EventNotifier.javapackage org.zj.sample;
public class EventNotifier {
private InterestingEvent ie;
private boolean somethingHappened;
public EventNotifier(InterestingEvent event) {
ie = event; // 保存事件对象以备后用。
somethingHappened = false; // 还没有要报告的事件。
}
public void doWork() {
if (somethingHappened) {
// 检查设置的谓词。
ie.interestingEvent(); // 通过调用接口的这个方法发出事件信号。
}
}
public void setHappened(){ //设置谓词。
somethingHappened=true;
}}

在上例中,使用somethingHappened谓词来跟踪是否应触发事件。希望接收事件通知的代码必须实现InterestingEvent接口,并将自身引用传递给事件通知程序。

CallMe.javapackage org.zj.sample;
public class CallMe implements InterestingEvent {
@SuppressWarnings("unused")
private EventNotifier en;
public CallMe() {
// 注意EventNotifier(InterestingEvent event),应该传递一个接口类型。
// 而下面将this,即实现了InterestingEvent接口的CallMe实例传递给EventNotifier。
// 也就是所谓的接口回调了。
en = new EventNotifier(this); // 创建事件通知程序,并将自身引用传递给它。
}
// 为事件定义实际的处理程序。

阅读全文

与如何触发所有实现接口的方法相关的资料

热点内容
老年人胃不舒服怎么缓解最快方法 浏览:659
最新的避孕方法有哪些 浏览:90
有什么方法能让歌声变好听 浏览:308
不带小数点的简便方法计算 浏览:170
兽药检测方法检测限 浏览:698
空鼓锤使用方法 浏览:378
16岁少年口臭的原因和治疗方法 浏览:894
宝鸡高考模拟检测方法 浏览:632
虫娄的食用方法 浏览:638
内心省察的修养方法是什么 浏览:35
家用锅炉接地线的安装方法 浏览:824
围巾的使用方法 浏览:910
风筝的制作方法和步骤了 浏览:40
pythonimage方法打开图片 浏览:791
去痣最快的方法怎么消除 浏览:982
隐形高血压的治疗方法 浏览:969
下杆旋转训练方法 浏览:828
正确的杀羊去毛方法 浏览:85
艾蒿的功效与作用及食用方法 浏览:794
糖度计使用方法 浏览:520