當前位置:編程學習大全網 - 腳本源碼 - JAVA中 接口是什麽? 接口的回調是什麽?

JAVA中 接口是什麽? 接口的回調是什麽?

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.再來看看向上轉型(upcasting)的概念。

用 Java 接口實現回調函數的等價功能熟悉 MS-Windows 和 X Window System 事件驅動編程模型的開發人員,習慣於傳遞在某種事件發生時調用(即“回調”)的函數指針。Java 的面向對象模型目前並不支持方法指針,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); // 創建事件通知程序,並將自身引用傳遞給它。 } // 為事件定義實際的處理程序。

  • 上一篇:美杜莎,為什麽最後被變成蛇妖?
  • 下一篇:紅包提醒怎麽設置
  • copyright 2024編程學習大全網