Heim >Java >javaLernprogramm >Wie rufe ich Standardmethoden in Java explizit auf?

Wie rufe ich Standardmethoden in Java explizit auf?

Barbara Streisand
Barbara StreisandOriginal
2024-11-25 00:06:23388Durchsuche

How to Explicitly Call Default Methods in Java?

Standardmethoden explizit in Java aufrufen

Java 8 führt Standardmethoden ein, um Schnittstellen zu erweitern, ohne vorhandene Implementierungen zu ändern. Entwickler können jedoch auf Szenarien stoßen, in denen der explizite Aufruf einer Standardimplementierung erforderlich ist, beispielsweise wenn eine Methode überschrieben wurde oder Konflikte mit mehreren Standardimplementierungen in verschiedenen Schnittstellen auftreten.

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 A.foo() aus Klasse B explizit aufzurufen, verwenden Sie die folgende Syntax:

A.super.foo();

Mit dieser Syntax können Sie angeben die genaue Standardimplementierung, die aufgerufen werden soll, um potenzielle Konflikte oder übergeordnete Probleme zu lösen. Im obigen Beispiel kann afoo() wie folgt implementiert werden:

public void afoo() {
    A.super.foo();
}

Der Code in afoo() ruft nun die Standardimplementierung von foo() von Schnittstelle A auf, auch wenn sie in überschrieben wurde Klasse B.

Wenn mehrere Schnittstellen Standardmethoden mit demselben Namen definieren, können Sie außerdem dieselbe Syntax verwenden, um die spezifische Implementierung auszuwählen, die aufgerufen werden soll. Wenn C beispielsweise eine weitere Schnittstelle mit einer Standardmethode foo() ist, kann der folgende Code verwendet werden:

public class ChildClass implements A, C {
    @Override    
    public void foo() {
       A.super.foo();
       C.super.foo();
    }
}

Dieser Ansatz ermöglicht Flexibilität und Kontrolle darüber, welche Standardimplementierungen in Ihren Klassen verwendet werden. Durch den expliziten Aufruf von Standardmethoden können Sie Konflikte lösen und die erweiterten Funktionen der Standardmethoden von Java 8 nutzen, ohne vorhandene Schnittstellendefinitionen ändern zu müssen.

Das obige ist der detaillierte Inhalt vonWie rufe ich Standardmethoden in Java explizit auf?. 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