Heim >Java >javaLernprogramm >Wie kann ich die Standardmethode einer Java-Schnittstelle nach dem Überschreiben explizit aufrufen?

Wie kann ich die Standardmethode einer Java-Schnittstelle nach dem Überschreiben explizit aufrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-11 18:33:10759Durchsuche

How Can I Explicitly Call a Java Interface's Default Method After Overriding?

Explizites Aufrufen von Standardmethoden in Java

Java 8 führte Standardmethoden in Schnittstellen ein und ermöglichte so eine Schnittstellenerweiterung, ohne bestehende Implementierungen zu ändern. Es stellt sich jedoch die Frage: Können wir die Standardimplementierung einer Methode explizit aufrufen, wenn sie überschrieben wurde oder Konflikte aufgrund mehrerer Standardimplementierungen in verschiedenen Schnittstellen bestehen?

Betrachten Sie das folgende Beispiel:

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?
    }
}

Um die Standardimplementierung von A.foo() explizit von afoo() in Klasse B aufzurufen, können wir die verwenden Syntax:

A.super.foo();

Dieser Ansatz ermöglicht es uns, auf die ursprüngliche Standardimplementierung der Methode zuzugreifen, selbst wenn diese überschrieben wurde oder Konflikte mit anderen Standardimplementierungen vorliegen.

In einem komplexeren Szenario Wenn mehrere Schnittstellen Standardmethoden mit demselben Namen enthalten, können wir dieselbe Syntax verwenden, um die spezifische Standardimplementierung auszuwählen, die wir verwenden möchten:

public class ChildClass implements A, C {
    @Override
    public void foo() {
       // Override and do something else

       // Or manage conflicts
       A.super.foo();
       C.super.foo(); // Default implementation from C
    }

    public void bah() {
       A.super.foo(); // Default implementation from A
       C.super.foo(); // Default implementation from C
    }
}

By explizit Durch den Aufruf von Standardmethoden können wir steuern, wie Schnittstellen erweitert werden, Konflikte lösen und nach Bedarf auf Originalimplementierungen zugreifen, ohne den Überschreibungsvertrag zu brechen. Dies bietet Flexibilität und Anpassung bei schnittstellenbasierten Designs.

Das obige ist der detaillierte Inhalt vonWie kann ich die Standardmethode einer Java-Schnittstelle nach dem Überschreiben explizit aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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