Schnittstellenrückrufe sind eine Möglichkeit, Polymorphismus zu verkörpern. Dadurch kann die Objektreferenz einer Klasse, die eine Schnittstelle implementiert, der von der Schnittstelle deklarierten Schnittstellenvariablen zugewiesen werden, sodass die von der Klasse implementierten Methoden in der Schnittstelle über die Schnittstellenvariable aufgerufen werden können. Dies entspricht der Benachrichtigung des entsprechenden Objekts, die Schnittstellenmethode aufzurufen, was auch als Schnittstellenrückruf bezeichnet wird. Wenn verschiedene Klassen dieselbe Schnittstelle verwenden, können sie unterschiedliche funktionale Implementierungen haben, was bedeutet, dass die Methodenkörper in der Schnittstelle unterschiedlich sein können. Daher können durch Schnittstellenrückrufe unterschiedliche Verhaltensweisen erreicht werden.
öffentliche Schnittstelle InterfaceHuidiao {
void showMessage();
}
PC der öffentlichen Klasse implementiert InterfaceHuidiao {
public void showMessage() {
System.out .println("Ich bin ein Computer!");
}
}
Public-Class-TV implementiert InterfaceHuidiao {
public void showMessage() {
System.out.println ("Ich bin ein Fernseher!");
}
}
öffentliche Klasse TestIntefaceHudiao {
public static void main(String[] args) {
IntefaceHuidiao ms ;
ms = neuer Fernseher();
ms.showMessage();
ms = neuer PC();
ms.showMessage();
}
}
Lassen Sie mich Ihnen ein Programm zeigen, das ich gerade geschrieben habe ... es ist leicht zu verstehen ...
Schnittstellennachricht{
void showMessage();
}
Klasse NbMsg implementiert Msg{
public void showMessage() {
System.out.println("123456");
}
}
class CahrMsg implementiert Msg{
public void showMessage() {
System.out.println("abcdef");
}
}
öffentlicher Klassentest {
private Msg-Nachricht;
public void show() {
System.out.println („Etwas wird verarbeitet“);
msg.showMessage();
}
public void setMsg(Msg msg) {
this.msg = msg;
}
public static void main(String[] args) {
test a = neuer test();
a.setMsg(new CahrMsg());
a.show();
a.setMsg(new NbMsg());
a.show();
}
}
Das Ergebnis ist:
Kümmere dich um ein paar Dinge
abcdef
Kümmere dich um ein paar Dinge
123456
Warum Schnittstellen Rückrufe implementieren können
Interface-Menschen {
void peoplelist();
}
Klassenschüler setzt Menschen um {
public void peoplelist() {
system.out.println("ich bin Student.");
}
}
Klassenlehrer setzt Menschen um {
public void peoplelist() {
system.out.println("ich bin Lehrer.");
}
}
Beispiel für eine öffentliche Klasse {
public static void main(string args[]) {
people a; // Schnittstellenvariablen deklarieren
a = new student(); // Instanziierung, die Referenz des Objekts wird in der Schnittstellenvariablen gespeichert
a.peoplelist(); //Schnittstellenrückruf
a = new teacher(); // Instanziierung, die Referenz des Objekts wird in der Schnittstellenvariablen gespeichert
a.peoplelist(); //Schnittstellenrückruf
}
}
Ergebnis:
Ich bin Student.
Ich bin Lehrer.
Das obige ist der detaillierte Inhalt vonEingehende Analyse des Schnittstellen-Callback-Mechanismus von Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!