Abstrakte Klasse
Eine abstrakte Klasse bezeichnet in der objektorientierten Programmierung eine spezielle Klasse, welche sich per Definition nicht instanziieren lässt (d.h. es lassen sich keine Objekte von ihr erzeugen) und die somit lediglich als Strukturelement innerhalb einer Klassenhierarchie dient. Innerhalb von abstrakten Klassen besteht die Möglichkeit abstrakte Methoden (also Methoden ohne „Rumpf“ (Implementierung) nur mit der Signatur) zu deklarieren.
Schnittstellen sind rein abstrakte Klassen, die nur Methodensignaturen deklarieren. Eine Klasse gilt dagegen bereits als abstrakt, sobald eine Methode vorhanden ist, die durch eine erbende Klasse implementiert werden muss. In einer abstrakten Klasse können auch Variablen definiert und Methoden implementiert werden.
Als Basisklassen in einer Klassenhierarchie können abstrakte Klassen grundlegende Eigenschaften ihrer Unterklassen festlegen, ohne diese bereits konkret zu implementieren. Leitet eine Klasse von einer abstrakten Klasse ab, müssen alle vererbten abstrakten Methoden überschrieben und implementiert werden, damit die erbende Klasse selbst nicht abstrakt ist.
Abstrakte Klassen können nicht selbst instanziiert werden, nur Spezialisierungen von diesen. Dennoch können Teile des Quelltextes allgemein gehalten und nur unter Verwendung der Eigenschaften des abstrakten Basistyps implementiert werden. Durch Polymorphie kommen dabei die speziellen Implementierungen der nicht abstrakten Unterklassen zur Ausführung.
1.1 Geometrie
1.1.1 Programmbeispiel
1.2 Beispiel für den Datenbankzugriff
Geometrie[Bearbeiten]
Zweidimensionale geometrische Figuren haben gemeinsam, dass sie über eine Fläche verfügen. Je nach Figur wird diese Fläche aber unterschiedlich berechnet.
Wird eine abstrakte Basisklasse namens Geometrisch angelegt, kann mit einem Methodenrumpf für eine Funktion berechneFlaeche festgelegt werden, dass alle Unterklassen eine entsprechende Methode implementieren müssen. Zum Beispiel wird eine Klasse Rechteck die Länge mit der Breite multiplizieren, in einer Klasse RechtwinkligesDreieck wird die Länge mit der Höhe multipliziert und das Produkt halbiert.
Durch die Klassenhierarchie mit einer abstrakten Basisklasse hat man sich die Möglichkeit eröffnet, andernorts Funktionen zu erstellen, die ein Objekt vom Typ Geometrisch entgegennehmen und auf ihm die Funktion berechneFlaeche aufrufen, völlig unabhängig davon, ob es sich um Dreiecke, Rechtecke oder Kreise handelt. Die Funktionen sind somit für sämtliche geo