Interfaces

In der OOP gibt es neben Klassen auch Schnittstellen. Diese werden in Java Interfaces genannt und in Klassen implementiert. Sie geben vor, welche Methoden existieren bzw. existieren müssen. Sie können also abstrakte Methoden und zusätzlich noch Konstanten enthalten.

Dies ist aber auch in abstrakten Klassen möglich. Wieso also Interfaces verwenden?

  1. Mehrfachvererbung möglich: Interfaces sind in der Lage, von mehreren anderen Interfaces zu erben. Dies ermöglicht das zusammenführen verschiedener Vorgaben.
  2. Mehrfachimplementierung möglich: Klassen haben die Möglichkeit, mehrere Interfaces zu implementieren. So kann man in eine übergreifende Klasse verschiedene Definitionen implementieren.
  3. Keine Hierarchie: Interfaces sind in keine Hierarchie von Klassen eingeordnet. Demnach kann jede Klasse ein beliebiges Interface implementieren ohne an einer bestimmten Position in der Klassenhierarchie zu stehen.

Ein weiterer Grund könnte noch sein, dass Interfaces genauso wie (abstrakte) Klassen Polymorphismus ermöglichen. Somit kann man für Objekte, die das Interface implementieren, Speicherplatz reservieren.

Da Interfaces lediglich aus abstrakten Methoden bestehen, kann das Schlüsselwort abstract bei der Methoden-Definition weggelassen werden. Ebenso das Schlüsselwort final bei den Konstanten. Außerdem können natürlich auch keine Objekte von einem Interface angelegt werden.

Sinnvoll sind Interfaces also nur dann, wenn man lediglich Vorgaben für Klassen definieren will. Sie werden beispielsweise in Quellcode-Bibliotheken verwendet, um den Nutzer zu zwingen, bestimmte Methoden in seine Klasse zu integrieren.