Kurz erklärt
Ein Vertrag, der festlegt, WELCHE Methoden eine Klasse anbieten muss, ohne vorzugeben, WIE diese Methoden intern implementiert sind.
Genauer
Eine Klasse, die ein Interface "implementiert", verpflichtet sich, alle darin definierten Methoden mit eigenem Code zu füllen. Anders als bei Vererbung kann eine Klasse meist mehrere Interfaces gleichzeitig implementieren, aber nur von einer einzigen Oberklasse erben — Interfaces sind damit ein flexibler Weg, Polymorphie auch zwischen völlig unverwandten Klassen zu ermöglichen.