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

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

发布时间: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); // 创建事件通知程序,并将自身引用传递给它。
}
// 为事件定义实际的处理程序。

阅读全文

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

热点内容
过期食用油销毁方法 浏览:766
变压器绝缘电阻仪器使用方法 浏览:873
用膨胀因子方法检验猜测步骤 浏览:459
电脑表格怎么截屏最简单方法 浏览:809
气囊好坏检测方法 浏览:209
汽车前置雷达安装方法 浏览:69
现代汉语研究常用的方法 浏览:164
全脑速读训练方法 浏览:364
快速预定酒店方法 浏览:72
炎清舒使用方法 浏览:367
福建城市污水处理方法有哪些 浏览:336
聚乙烯编织绳穿插连接方法 浏览:604
15乘101简便方法 浏览:984
12x48简便计算方法 浏览:816
富含维c食物的食用方法 浏览:62
调查问卷中变量的测量方法 浏览:129
浆油质量检测方法 浏览:320
占风水宝地用什么方法 浏览:47
硅胶手机壳安装方法 浏览:911
煮茶器的方法视频 浏览:150