接口回調

接口回調
egg:    a:demo類(調用打印)  b:打印類    c:打印接口,其中有抽象方法suc()和fail()    a調用b的打印方法時傳入c接口的實現類,b的這個打印方法中在合適的位置去調用a傳入的接口的對應方法

1)定義接口: 定義一個接口、定義其中的抽象方法、抽象方法含有參數(被傳遞的數據);
2)編寫回調方法: 在定義接口的類中,編寫用戶回調的方法,要傳遞一個接口對象實例,讓別的類去實現。(相當於爲接口成員變量賦值)
3)爲抽象方法賦值: 獲取一個全局的接口成員變量,在某個事件中使用接口成員變量調用接口中的方法,並且爲抽象方法中的參數賦值。(這一步可以在回調方法中實現)
在另一個頁面,在合適的時機,創建此類的實例,調用類中的回調方法,爲接口對象賦值this,即可實現回調。

需要一個接口的實現類:
1)讓當前Activity實現接口,變成接口的實現類;
2)寫一個類去實現接口,實現其中的抽象方法,然後在需要的地方創建一個接口實現類的子類對象
3)直接在當前位置使用匿名對象實現,創建一個接口實例。

回調原理:
接口調用自己的抽象方法,相當於接口的實現類調用實現類中重寫的抽象方法;

接口中沒有構造函數:
1)接口中是沒有構造函數的,不能直接創建對象,只能由實現類創建對象;接口中的成員常量不需要進行初始化,所以不需要構造函數。
2)而抽象類是有構造方法的,爲了給子類調用初始化抽象類中的成員變量。

接口的特點:
1)接口用關鍵字interface表示;類實現接口用implements表示。
2)接口不能實例化:那麼,接口如何實例化呢?按照多態的方式,由具體的子類實例化。其實這也是多態的一種,接口多態。
3)接口的子類:要麼是抽象類,要麼重寫接口中的所有抽象方法。

接口中的成員:
成員變量:只能是常量  默認修飾符 public static final(不能被修改)
構造方法:沒有,因爲接口主要是擴展功能的,而沒有具體存在
成員方法:只能是抽象方法  默認修飾符 public abstract(可以省略)

類與類,類與接口以及接口與接口的關係:
類與類: 繼承關係,只能單繼承,但是可以多層繼承
類與接口:實現關係,可以多實現,還可以在繼承一個類的同時實現多個接口。

接口與接口:繼承關係,可以單繼承,也可以多繼承。

https://blog.csdn.net/qq379454816/article/details/51546638

發佈了40 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章