Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
class HILFSKRAFT<br />
inherit<br />
UNI-ANGESTELLTE<br />
redefine<br />
gehalt<br />
export<br />
name, vornamen, adresse, gehalt<br />
end; -- feature-Anpassung von UNI-ANGESTELLTE<br />
STUDENT<br />
rename<br />
fachbereich as studienfachbereich<br />
export<br />
universität, studienfachbereich<br />
end -- feature-Anpassung von STUDENT<br />
feature<br />
monatsstunden: INTEGER;<br />
gehalt: REAL is -- Gehalt berechnen<br />
do Result := Festgehalt nach monatsstunden end<br />
end -- class HILFSKRAFT<br />
Abbildung 3.39: Vererbung mit Umbenennung<br />
vor unter dem alten Namen verfügbar (ansonsten würde jede Umbenennung in einer Nachfolgerklasse massive<br />
Konsequenzen für die gesamte Eiffel-Bibliothek haben). Die Verwaltung <strong>der</strong> Namen durch den Programmierer<br />
kann also lokal geschehen. Die globale Verwaltung wird von <strong>der</strong> Eiffel-Programmierumgebung gehandhabt.<br />
3.8.9 Wie<strong>der</strong>holtes Erben<br />
Die Möglichkeit <strong>der</strong> Mehrfachvererbung bringt neben <strong>der</strong> Gefahr von Namenskollisionen noch ein weiteres<br />
Problem mit sich: was passiert, wenn eine Klasse mehrmals ein Nachkomme ein und <strong>der</strong>selben Klasse ist?<br />
Dieses Problem tritt notwendigerweise irgendwann einmal auf, wenn man mehrfaches Erben zuläßt. Man<br />
spricht in diesem Fall von wie<strong>der</strong>holtem Erben.<br />
In Abbildung 3.39 hatten wir die Klasse HILFSKRAFT als Erben von STUDENT und UNI-ANGESTELLTE deklariert.<br />
Dies führte dort zu keinerlei Problemen, weil STUDENT bisher nur über universität, fachbereich und<br />
matrikelnummer erklärt war, was keinesfalls <strong>der</strong> Realität entspricht. Im Normalfall wird man die Klasse <strong>der</strong><br />
Studenten genauso als Erben von PERSON deklarieren wie die Klasse <strong>der</strong> Universitätsangestellten. Dann aber<br />
stehen wir vor dem Problem, daß HILFSKRAFT auf zwei Wegen die features <strong>der</strong> Klasse PERSON erbt.<br />
✬<br />
✫<br />
STUDENT<br />
✬<br />
✫<br />
✟✩✟✟✟✟✯ ❍❨ ❍✪<br />
❍<br />
❍<br />
❍✬<br />
✫<br />
PERSON<br />
HILFSKRAFT<br />
✩<br />
❍❨ ❍✪<br />
❍<br />
❍<br />
❍✬<br />
✫<br />
✟✩✟✟✟✟✯ ✪<br />
Abbildung 3.40: Wie<strong>der</strong>holtes Erben<br />
UNI-ANGESTELLTE<br />
✩<br />
✪