Zum Inhalt springen

Unterklasse

oder auch Abgeleitete Klasse, Kindklasse, Subklasse

Männliche Person, frontal, schaut in die Kamera; trägt kariertes Hemd über dunkelfarbigem T‑Shirt; heller Innenraum mit unscharfem Monitor oder Poster links und Fenster rechts.

von Richard Albrecht am 29.10.2026

Eine Unterklasse ist die Klasse, die von einer anderen erbt. Sie übernimmt deren Eigenschaften und Methoden und kann eigene hinzufügen oder geerbte ersetzen.

Unterklasse

Die Klasse, die von einer anderen erbt und deren Verhalten ergänzt oder ersetzt.
Beispiel: „Die Unterklasse für Lastschriften überschreibt allein die Erzeugung des Belegs.“

Auch: Subklasse, der Name aus Java und Smalltalk; abgeleitete Klasse, der Name aus dem C++-Umfeld; Kindklasse in Anlehnung an den Dokumentbaum.

Die Gegenrichtung ist die Oberklasse; der Vorgang heißt Vererbung.

class Zahlungsart:                 # Oberklasse
    def beleg(self):
        return "Zahlung erhalten"

class Lastschrift(Zahlungsart):    # Unterklasse
    def beleg(self):
        return "Lastschrift eingezogen"

Was eine Unterklasse ändern darf

Sie darf ergänzen und ersetzen, aber nicht widersprechen. Wer eine geerbte Methode überschreibt, muss sie unter denselben Bedingungen aufrufbar halten; sonst zerbricht an ihr Quelltext, der nur die Oberklasse kennt.

Das ist die praktische Fassung einer bekannten Regel: Überall, wo die Oberklasse erwartet wird, muss jede Unterklasse eingesetzt werden können, ohne dass etwas anders ausgeht.

Woran man eine schlechte Unterklasse erkennt

Daran, dass sie Geerbtes abschalten muss. Eine Methode, die in der Unterklasse nur noch einen Fehler wirft, ist das deutlichste Zeichen dafür, dass die Beziehung gar keine ist.

Dann stimmt die Behauptung nicht, die hinter jeder Vererbung steht: Die Unterklasse ist eine Art der Oberklasse. Wo sie das nicht ist, gehört die Gemeinsamkeit in eine eigene Klasse, die beide benutzen.

Wie tief Unterklassen gestapelt werden sollten

So flach wie möglich. Mit jeder Ebene wächst die Zahl der Stellen, an denen eine Methode überschrieben sein kann, und beim Lesen muss man sie alle durchgehen.

Zwei Ebenen reichen für die meisten Fälle. Wo mehr entsteht, bildet die Kette oft die Entstehungsgeschichte des Programms ab und nicht den Gegenstand, um den es geht.

Siehe auch:

Oberklasse

Die Klasse, von der eine andere ihre Eigenschaften und Methoden erbt.

#Programmiersprachen

Klassen (Objektorientierung)

Die Vorlage, nach der gleichartige Objekte gebaut werden.

#Programmiersprachen

Vererbung (Objektorientierung)

Eine Klasse stammt von einer anderen ab und übernimmt deren Daten und Methoden.

#Programmiersprachen

Objektorientierte Programmierung (OOP)

Ein Programm nach den Dingen ordnen, um die es geht, statt nach den Arbeitsschritten.

#Programmiersprachen

Clean Code

Quelltext für die Menschen schreiben, die ihn später lesen.

#Programmiersprachen

Variablen

Ein benannter Platz, an dem ein Wert liegt, solange das Programm läuft.

#Programmiersprachen