Klassenkarten
Zur besseren Veranschaulichung, Strukturierung und zur Modellierung von Software haben Sie bereits in den vorangegangenen Jahrgangsstufen das Werkzeug der Klassendiagramme kennen gelernt.
Diese fassen das möglliche Verhalten und den möglichen Zustand von Objekten zusammen. Auffrischung gibts hier.
Vererbung
Man merkt hier schnell, dass es mühsam ist, in jeder Klasse die gleichen Attribute und Methoden zu deklarieren. Neben dem zusätzlichen Arbeitsaufwand entstehen so auch schnell Fehler, wenn man die gleichen Inhalte an verschiedenen Stellen verändern muss.
Des Weiteren erschwert man sich eine spätere Erweiterung der Klassen. Will man zum Beispiel ein Attribut Besitzer hinzufügen, so würde das in alle Tier-Klassen passen und man müsste tatsächlich alle einzeln ändern. Häufig hat man selber gar keinen Zugriff auf die Klassen, um Änderungen am Code vorzunehmen. Aus diesem Grund gibt es das Konzept der Vererbung.
Am besten lässt sich Vererbung an unserem Beispiel erklären:
Durch den Vererbungspfeil ist jetzt im Klassendiagramm deutlich gemacht, dass Pferd, Hund, Katze und Hamster von Tier erben. Dies ist erlaubt, weil Pferde, Hunde, Katzen und Hamster Tiere sind.
IS-A / IST-Ein-Beziehung
WICHTIG: Vererbung darf nur eingesetzt werden, wenn die ist-ein Beziehung gilt.
Also zum Beispiel: ein Pferd IST ein Tier. Ein Schüler IST eine Person
Tier ist jetzt die sogenannte Superklasse und Pferd, Hund, Katze und Hamster sind die sogenannten Subklassen.
Durch Vererbung können (!) die Subklassen nun das Verhalten und den Zustand der Superklasse erben. Aus diesem Grund müssen Attribute und die Funktionen nicht mehr in den Subklassen deklariert werden; die haben sie bereits geerbt.
Ihnen ist sicherlich aufgefallen, dass die Funktion wiehern() durch lautGeben() ersetzt wurde. Vergleichen Sie hierzu den Artikel zu Generalisierung und Spezialisierung.