Suche
Default-Methoden und statische Methoden in Interfaces

Effective Java: Interfaces

Klaus Kreft, Angelika Langer
© S&S Media

Wie bereits in einem unserer vorhergehenden Beiträge [1] kurz erwähnt, wird es ab Java 8 möglich sein, Methoden in Interfaces zu implementieren. Warum das so ist, wie es genau geht und welche Auswirkungen dies in Zukunft auf das Programmieren in Java hat, wollen wir uns im Folgenden genauer ansehen.

Bisher mussten Methoden in Interfaces in Java abstrakt sein. Das heißt, eine Methode in einem Interface legte allein ihre Signatur und ihre allgemeine Semantik fest. Eine Implementierung konnte sie nicht haben. Die Implementierung wurde erst von den (nicht abstrakten) Klassen, die von dem Interface abgeleitet waren, zur Verfügung gestellt.
Das ändert sich mit Java 8. Eine Default-Methode kann eine Methode mit Implementierung in einem Interface zur Verfügung stellen. Diese Implementierung wird dann an alle abgeleiteten Interfaces und Klassen vererbt, sofern diese sie nicht mit einer eigenen Implementierung überschreiben. Das ist eine tiefgreifende Änderung beim Programmieren in Java. Warum sie notwendig geworden ist und was sie im Detail bedeutet, sehen wir uns weiter unten genauer an.
Zunächst zu einer weiteren Änderung: Mit Java 8 wird es auch möglich sein, statische Methoden in Interfaces zu implementieren.
In beiden Fällen (Default-Methode und statische Methode) sind die Methoden automatisch public, wie es bei abstrakten Methoden auch bisher schon war. Es wurde diskutiert, andere Zugriff-Modifier wie z. B. private zuzulassen. Am Ende hat man dies aber aus Aufwandsgründen verworfen. Es ist aber nicht ausgeschlossen, dass Zugriff-Modifier wie z. B. private in einem zukünftigen Java-Release nach Java 8 erlaubt sein werden. […].

Geschrieben von
Klaus Kreft
Klaus Kreft
  Klaus Kreft arbeitet selbstständig als Consultant und Trainer. Kontakt: http://www.AngelikaLanger.com.
Angelika Langer
Angelika Langer
  Angelika Langer arbeitet selbstständig als Trainer mit einem eigenen Curriculum von Java- und C++-Kursen. Kontakt: http://www.AngelikaLanger.com.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.