Jedes Vereinsvorstand besitzt die Eigenschaften und Fähigkeiten eines Vereinsmitglieds. Darüber hinaus verfügt ein Vereinsvorstand über das Attribut aufgabe.
Abbildung 10-9a zeigt die Testklasse SubstitutionBeispiel. In deren Konstruktor wird jeweils ein Objekt der Klassen Vereinsmitglied und Vereinsvorstand erzeugt. Außerdem werden allen Attributen der beiden Objekte Testwerte zugewiesen.
Anschließend sollen Vor- und Nachname des Vereinsmitglieds und des Vereinsvorstands auf der Konsole ausgegeben werden.
Dazu besitzt die Klasse SubstitutionBeispiel zwei Methoden. Die Methode zeigeMitgliedsdaten(pMitglied: Vereinsmitglied) gibt Vor- und Nachnamen eines Vereinsmitglieds aus, die Methode zeigeMitgliedsdatenVorstand(pVorstand: Vereinsvorstand) Vor- und Nachnamen eines Vereinsvorstands.
Da die Klasse Vereinsvorstand eine Unterklasse von Vereinsmitglied ist, verfügt ein Vereinsvorstand-Objekt auch über alle Attribute und Methoden, die ein Vereinsmitglied-Objekt besitzt. Gemäß dem Substitutionsprinzip kann ein Vereinsvorstand-Objekt daher stets anstelle eines Vereinsmitglied-Objekts verwendet werden. Der Methode zeigeMitgliedsdaten(pMitglied: Vereinsmitglied) darf somit auch ein Objekt der Klasse Vereinsvorstand übergeben werden. Allerdings sind in diesem Fall nur die gemeinsamen Attribute und Methoden verfügbar. Die Methode zeigeMitgliedsdatenVorstand(pVorstand: Vereinsvorstand) ist daher überflüssig (vgl. Abbildung 10-9b).