Reine Beschreibung des Entwurfs von Objekten. Vollständig abstrahiert von der Implementierung.
Entspricht abstrakten Klassen (ohne Attribute) in anderen OO-Sprachen.
Der Entwerfer von Schnittstellen spezifiziert, welche Methoden von Klassen, die die Schnittstelle implementieren, bereitgestellt werden.
interface ersetzbar { // für ersetzbare Objekte läßt sich // eine Ersatzteilnummer ermitteln: int ersatzteilnummer(String Name); }
Java-Klassen können mehrere Schnittstellen implementieren:
class Motor implements ersetzbar, identifizierbar { ... }
Schnittstellen können wie Klassen verwendet werden:
// Bestelle beim Großhändler alle // benötigten Ersatzteile pubic static void ersatzteilorder(ersetzbar[] kaputt) { ... }
Schnittstellen können andere Schnittstellen erweitern (auch mehrere):
interface druckbarundspeicherbar extends druckbar, speicherbar { boolean aktuelleversiongedruckt(); }
Interfaces erweitern die Möglichkeiten der Polymorphie:
Die Obertypen einer Klasse T umfassen
Ein Objekt vom Typ T darf überall dort verwendet werden, wo Obertypen von T zulässig sind.