Abstrakte Klassen
Abstrakte Klassen sind die Basis für weitere Klassen. Sie werden eingesetzt, wenn eine Vererbungshierarchie eine Grundlage braucht, aber von der grundlegenden Klasse keine sinnvollen Objekte instanziiert werden können, bzw. sollen.
Programmierung
Eine Klasse wird durch das Schlüsselwert abstract zu einer abstrakten Basisklasse.
Dadurch kann kein Objekt dieser Klasse mehr instanziiert werden.
In der abstrakten Basisklasse werden die Grundlagen für die Vererbungshierarchie gelegt. Sinnvollerweise wird auch der Polymorphismus eingesetzt. Anstelle von virtuellen Methoden können nur abstrakte Methoden angelegt werden.
Dadurch werden die abgeleiteten Klassen gezwungen, diese Methoden mit override zu überschreiben. Das hat den Vorteil, dass sich alle Klassen aus der Vererbungshierarchie ähnlich verhalten und eine gewisse Grundfunktionalität vorhanden ist.
Interfaces haben viel Ähnlichkeit mit dem Konzept der abstrakten Klassen.
Ein Interface sieht aus wie eine Klasse, in diesem findet jedoch keine Implementierung statt. Das Interface legt nur fest, welche Attribute und Methoden genutzt werden sollen.
Eine Klasse, die das Interface implementiert, muss diese Eigenschaften und Methoden dann auch definieren.