Was sind 'Default-Methoden' genau?
Default-Methoden bieten Ihnen einen Mechanismus, um einer Schnittstelle eine Implementierung hinzuzufügen, ohne sie zu einer abstrakten Klasse zu machen.
Der Hauptanwendungsfall für Standardmethoden war die Aufgabe, Methoden zu einer Schnittstelle hinzuzufügen, ohne den Code anderer Personen zu unterbrechen. Sie ermöglichen es jedoch auch, Funktionalität über die Implementierung einer Schnittstelle "einzumischen", was eine sehr leistungsfähige Ergänzung zum Typensystem von Java ist, das früher nur eine einzige Zeile von Implementierungen zuließ.
Was ist eine 'funktionale Schnittstelle'?
Eine funktionale Schnittstelle ist dagegen eine Möglichkeit, dem Compiler mitzuteilen, dass Ihre Schnittstelle genau eine Methode haben wird. Im Gegenzug dafür gibt Ihnen der Compiler eine viel kürzere Syntax für das Definieren von Implementierungen Ihrer Schnittstelle, wodurch der Code dramatisch verkürzt wird, der früher von anonymen Klassen abhängig war.
Zusätzlich zu den beiden oben genannten Funktionen können Sie über Schnittstellen auch statische Funktionen definieren, die von allen Implementierungen gemeinsam genutzt werden können. Wie bei Standardimplementierungen fügt dies eine "zweite Dimension" zur Vererbung von Implementierungen hinzu, da es Ihnen ermöglicht, Code durch die Implementierung einer Schnittstelle zu teilen.