導航:首頁 > 方法技巧 > 如何觸發所有實現介面的方法

如何觸發所有實現介面的方法

發布時間: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); // 創建事件通知程序,並將自身引用傳遞給它。
}
// 為事件定義實際的處理程序。

閱讀全文

與如何觸發所有實現介面的方法相關的資料

熱點內容
企業供暖維修方法有哪些 瀏覽:343
石膏雕牙方法步驟貼吧 瀏覽:371
財務報表數據填寫及計算方法 瀏覽:678
吸塵器接電容的安裝方法 瀏覽:214
汽車電腦版繼電器的接線方法大全 瀏覽:202
x霜的正確安裝方法 瀏覽:28
直播與電商的研究方法 瀏覽:735
led燈箱的安裝方法 瀏覽:453
韻樂x5效果器電腦調音方法步驟 瀏覽:825
易混詞的鑒別方法 瀏覽:192
巧克力的食用方法大全 瀏覽:598
測孕棒使用方法 瀏覽:220
快速套上被套的方法 瀏覽:374
茶飲料澄清常用方法 瀏覽:867
紫外線使用檢測方法 瀏覽:490
康百力深海魚油膠囊食用方法 瀏覽:971
山東最新個人養老金計算方法 瀏覽:49
繁殖選種的一般方法有哪些 瀏覽:598
男人最佳手淫方法 瀏覽:4
窗檯是按米計算方法 瀏覽:99