Umsetzung von zwei Schnittstellen mit zwei Standard-Methoden die gleiche Signatur in Java 8

Angenommen ich habe zwei Schnittstellen:

public interface I1
{
    default String getGreeting() {
        return "Good Morning!";
    }
}

public interface I2
{
    default String getGreeting() {
        return "Good Afternoon!";
    }
}

Wenn ich will, zu implementieren, die sowohl von Ihnen, welche Implementierung verwendet wird?

public class C1 implements I1, I2
{
    public static void main(String[] args)
    {
        System.out.println(new C1().getGreeting());
    }
}
  • Was ist, Wenn I2 erstreckt I1 und C1 implementiert I2 !!? Ich denke, dass das kompilieren...oder bin ich da falsch ?
  • Vielen Dank für die Frage! Ich habe gerade ausprobiert: ja, das kompiliert wird, unabhängig getGreeting() in I1 ist abstrakte oder default. Wenn die Methode in I1 ist Standard, das bedeutet, Sie können das überschreiben der default-Implementierung in der Schnittstelle-intheritance...
  • Ja genau...Es wird geerbte Methode.
  • Hier ist ein Artikel über die Standard-Methoden : Java 8 : Default-Methode in Interface
InformationsquelleAutor kavai77 | 2014-03-27
Schreibe einen Kommentar