22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 />

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!