Android學習第五篇;事件監聽其實是接口調用

首先,隨便寫一個類

public class Test {
    private int x;//內部傳遞到外部的變量
    private int y;//內部傳遞到外部的變量

    public interface I {
        public void call(int x, int y);
    }

    private I i;

    public void doSomething() {
        i.call(x, y);//調用接口的方法
    }

    public void setListener(I i) {
        this.i = i;//設置接口
    }
}
在外部通過
Test test=new Test();
test.setListener(new I(){
@overwrite
public void call(int x,int y){
在這做你的事;
}
})
在test.doSomething()方法調用時,會將test內部的x,y變量傳遞出來
這樣就在call方法中使用了。
注意:在接口的調用過程中其實用到了多態的概念。在doSomething()中調用接口的call方法,其實調用的是
setListener()中設置的i的call方法。而i其實是I的具體實現,類似於I的子類。所以總結而言,父類引用可以
指向子類,而實際調用方法是子類方法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章