Was ist eine Default-Methode?

...komplette Frage anzeigen

4 Antworten

Sinn, Zweck und Funktionsweise der Default Methoden wird ausführlich erklärt auf Seite https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html .

grtgrt 14.12.2016, 01:16

Mit anderen Worten:

Normalerweise muss jede Klasse K, die ein Interface I implementiert, für jede der durch I definierten Methoden selbst eine Implementierung bereitstellen (oder von einer ihrer Oberklassen erben).

Stellt K (und auch keine Oberklasse von K) eine Implementierung bereit, wird das Interface nach einem Implementierungsvorschlag gefragt. Existiert einer, nennt man ihn die Default-Implementierung der Methode (kurz: Default Method).

1

Default = Standard.

Eine Default-Methode ist die Methode, die normalerweise (also standardmäßig) gewählt wird. Das kann bedeuten, dass es auch noch andere Methoden gibt, muss es aber nicht.

Default wird immer dann automatisch genutzt, wenn keine ander Methode vorgegeben wird.

public interface A {
default void foo(){
System.out.println("I am the default method.");
}
}

public class MyClass implements A {
}

Ohne das man jetzt foo() in MyClass implementieren muss geht folgendes trotzdem:

MyClass class = new MyClass();
class.foo();

soweit ich weiß, muss man methoden die im interface default sind, nicht in das interface benutzende klassen implementieren, werden sie aufgerufen, wird sie ohne overwrite aus dem interface gecallt.

Was möchtest Du wissen?