Interfaces werden verwendet, um Software zu schreiben, die unabhängig von einer konkreten Implementierung ist. Im Interface wird lediglich eine Schnittstelle vereinbart. Diese Schnittstelle beschreibt, wie eine Klasse zu verwenden ist.
In Java ist eine Mehrfachvererbung nicht möglich. Mit Hilfe von Interfaces kann trotzdem gewährleistet werden, dass Klassen die nicht in einer gemeinsamen Vererbungshierachie sind, bestimmte Eigenschaften und Methoden besitzen.
Beispiel aus der Java-Klassenbibliothek:
Abgesehen von Object sind die Klassen String und Integer in keiner gemeinsamen Vererbungshierachie. Trotzdem implementieren beide Klassen das Comparable-Interface – müssen also eine konkrete Implementierung der Methode compareTo() anbieten. Objekte der Klasse String können also genauso wie Objekte der Kasse Integer miteinander verglichen und damit auch sortiert werden.