Explizites Aufrufen von Standardmethoden in Java
Java 8 führte Standardmethoden ein, um Schnittstellen zu erweitern, ohne bestehende Implementierungen zu beschädigen. Wie rufen Sie jedoch die Standardimplementierung einer Methode auf, wenn diese überschrieben wird oder mit anderen Standardimplementierungen in Konflikt steht?
Im bereitgestellten Code wird die foo()-Methode als Standardmethode in der A-Schnittstelle definiert und überschrieben in der B-Klasse. Um auf die Standardimplementierung von A.foo() in der B-Klasse zuzugreifen, können Sie die folgende Syntax verwenden:
A.super.foo();
Dadurch können Sie die Standardimplementierung aufrufen, auch wenn sie überschrieben wurde. Es ist wichtig zu beachten, dass sich die A.super-Referenz auf den A-Schnittstellentyp und nicht auf das B-Klassenobjekt bezieht.
public class ChildClass implements A, C { @Override public void foo() { // Override the default implementation System.out.println("ChildClass.foo()"); } public void callDefault() { // Invoke the A.foo() default implementation A.super.foo(); // Invoke the C.foo() default implementation C.super.foo(); } }
In diesem Beispiel implementiert die ChildClass sowohl die A- als auch die C-Schnittstelle, jede mit ihrer eigenen Standardmethode foo(). Durch die Verwendung von A.super.foo() und C.super.foo() kann explizit auf die Standardimplementierungen zugegriffen werden, was ein bestimmtes Verhalten oder eine Konfliktlösung ermöglicht.
Das obige ist der detaillierte Inhalt vonWie rufen Sie die Implementierung einer Standardmethode explizit in Java auf, wenn sie in einer Klasse überschrieben wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!