Java介面回調是個什麼玩意兒

來源:互聯網
上載者:User

java的介面回調,在android下用的是越來越多了,到底該怎麼理解他呢?

 

好比是一個領導和一個下屬,還有一個下屬間諜三個人之間不清不楚的關係

 

1、下屬有一個吃飯的事情……

(定義介面)

2、領導發表申明,說對下屬的吃飯這件事感興趣,並說了如果下屬吃飯,他就怎麼樣怎麼樣,但是老闆就是老闆,總不能一直盯著下屬所以……

(實現介面,並實現處理監聽事件的方法)

3、領導一說話,間諜就去了下屬那,並且領導給了間諜特權,可以使用我的怎麼樣怎麼樣方法

(建立於介面的串連,實際上是一個向上轉型的過程,把間諜upcase為一個領導,從而調用領導的方法)

4、,然後只要一吃飯,間諜就通知領導,並替領導完成什麼樣什麼樣的事情

(通過介面的執行個體,調用介面中的方法)

 

這樣一說,大家應該對介面回調的機制有了點感性的理解了吧。

 

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();       //介面回調 } }


通過介面,我們將大量共通但實現細節不同的方法抽象出來,再去實現它的介面類中具體處理,這樣通過介面去調用方法的時候,就不用考慮具體調用哪個方法了。

 

這是一種用法,大致是多態的意思,還有一種用法就是組件中的通訊:

例如Fragment間的通訊

1、在Fragment中定義介面,申明介面的執行個體,在onAttach()方法中實現介面執行個體化為Activity對象

 

2、在Fragment中的某個方法內,使用介面的執行個體,調用Activity的方法,向Activity通訊

 

3、Activity實現介面與結構內的方法,實現處理回調的邏輯

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.