Ein Interface deklariert einen Vertrag — einen Satz von Methoden, die ein Typ bereitstellen muss — mit wenig oder gar keiner Implementierung. Eine abstrakte Klasse ist eine teilweise implementierte Klasse, die gemeinsamen Zustand und konkrete Methoden enthalten kann, aber nicht instanziiert werden darf. Der Unterschied liegt darin: Eine Klasse kann viele Interfaces implementieren, aber nur von einer Klasse erben.
