常用用法:回調方法介面,向上轉型動態綁定,常量介面。
回調方法介面:
Java代碼
public interface ICallback {
public void func();
}
public class Caller {
ICallback callback;
public void doCallback() {
callback.func();
}
public void setCallback(ICallback callback) {
this.callback = callback;
}
}
public class MainClass {
public MainClass() {
}
public static void main(String[] args) {
Caller caller = new Caller();
caller.setCallback(new ICallback () {
public void func() {
System.out.println("dosth");
}
});
caller.doCallback();
}
}
向上轉型:
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.
常量介面就不舉例了。舉個回調介面在Android中的例子。
執行個體(對於Android介面上Button點擊事件監聽的類比):
1.定義介面
Java代碼
public interface OnClickListener {
public void OnClick(Button b);
}
2. 定義Button
Java代碼
public class Button {
OnClickListener listener;
public void click() {
listener.OnClick(this);
}
public void setOnClickListener(OnClickListener listener) {
this.listener = listener;
}
}
3. 將介面對象OnClickListener 賦給Button的介面成員
Java代碼
public class MyActivity extends Activity{
Button button = new Button();
button.setOnClickListener(new OnClickListener(){
public void OnClick(Button b) {
System.out.println("clicked");
}
});
}
}
5進位空間,