介面回呼是一種體現多態性的方式。它允許將實作了某一介面的類別的物件參考賦給該介面宣告的介面變量,從而可以透過介面變數來呼叫類別實現的介面中的方法。這樣做就相當於通知對應的物件呼叫介面的方法,也稱為介面回呼。當不同的類別使用同一介面時,它們可能具有不同的功能實現,也就是說介面中的方法體可以不相同。因此,透過介面回調可以實現不同的行為。
public interface IntefaceHuidiao {
void showMessage();
}
public class PC implements IntefaceHuidiao {
public void showMessage() {
System. out .println( " 我是電腦 !" );
}
}
public class TV implements IntefaceHuidiao {
public void showMessage() {
System.out.println(" 我是電視機 !");
}
}
public class TestIntefaceHudiao {
public static void main(String[] args) {
IntefaceHuidiao ms ;
ms = new TV();
ms.showMessage();
ms = new PC();
ms.showMessage();
}
}
具體怎麼解釋可能不是特別好解釋啊....
給你看剛寫的一段程式好了...很容易理解的...
interface Msg{
void showMessage();
}
class NbMsg implements Msg{
public void showMessage() {
System.out.println("123456");
}
}
class CahrMsg implements Msg{
public void showMessage() {
System.out.println("abcdef");
}
}
public class test {
private Msg msg;
public void show() {
System.out.println("處理一些東西");
msg.showMessage();
}
public void setMsg(Msg msg) {
this.msg = msg;
}
public static void main(String[] args) {
test a = new test();
a.setMsg(new CahrMsg());
a.show();
a.setMsg(new NbMsg());
a.show();
}
}
結果是:
處理一些東西
abcdef
處理一些東西
123456
介面回呼是指:可以把使用實作了某一介面的類別所建立的物件的參考賦給該介面宣告的介面變量,那麼該介面變數就可以呼叫被類別實作的介面的方法。實際上,當介面變數呼叫被類別實作的介面中的方法時,就是通知對應的物件呼叫介面的方法,這個過程稱為物件功能的介面回呼。看下面範例.
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.
以上是深入解析Java的介面回呼機制的詳細內容。更多資訊請關注PHP中文網其他相關文章!