Heim > Java > javaLernprogramm > Hauptteil

Wie rufe ich Standardmethoden in Java auf, wenn sie überschrieben werden oder in Konflikt geraten?

Patricia Arquette
Freigeben: 2024-11-17 18:36:02
Original
843 Leute haben es durchsucht

How to Call Default Methods in Java When Overridden or Conflicting?

Standardmethoden in Java aufrufen

Frage:

Ist es möglich, die Standardmethode aufzurufen? Implementierung einer Methode, wenn sie überschrieben wurde oder mit Implementierungen in mehreren Schnittstellen in Konflikt steht? Betrachten Sie den folgenden Code:

interface A {
    default void foo() {
        System.out.println("A.foo");
    }
}

class B implements A {
    @Override
    public void foo() {
        System.out.println("B.foo");
    }
    public void afoo() {
        // How to invoke A.foo() here?
    }
}
Nach dem Login kopieren

Antwort:

Die Standardmethode A.foo() kann explizit mit der Syntax A.super.foo() aufgerufen werden . Mit dieser Syntax können Sie auf die ursprüngliche Implementierung der Methode zugreifen, auch wenn diese überschrieben wurde oder aufgrund von Konflikten nicht verfügbar ist.

Beispiel:

Um A aufzurufen. foo() aus der Methode afoo() in Klasse B können Sie den folgenden Code verwenden:

public void afoo() {
    A.super.foo();
}
Nach dem Login kopieren

Zusätzlich Verwendung:

Die Super-Syntax kann auch verwendet werden, um auf Standardmethoden von anderen Schnittstellen zuzugreifen. Wenn Schnittstelle C beispielsweise auch über eine Standardmethode foo() verfügt, können Sie wie folgt auf beide Implementierungen in Klasse B zugreifen:

public void bah() {
    A.super.foo(); // Original `foo()` from interface `A`
    C.super.foo(); // Original `foo()` from interface `C`
}
Nach dem Login kopieren

Mithilfe der Super-Syntax können Sie selektiv auswählen, welche Standardimplementierung aufgerufen werden soll oder kombinieren Sie mehrere Implementierungen in Ihren eigenen Methoden.

Das obige ist der detaillierte Inhalt vonWie rufe ich Standardmethoden in Java auf, wenn sie überschrieben werden oder in Konflikt geraten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage