首先,隨便寫一個類
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的子類。所以總結而言,父類引用可以
指向子類,而實際調用方法是子類方法。