OOP - Vererbung
Ausarbeitungen zu untenstehender Aufgabenstellung
Gruppe Liell-Rauch-Seise
Aufgabenstellung und Vorschlag einer Grobstruktur
- Einführendes Beispiel: Rollenspielwürfel, Astragalus, gezinkter Würfel
- Modellierung einzelner Klassen TW4, TW6, .. in UML
- Beobachtung: alle Klassen bis auf den Namen scheinbar gleich, Kode-Duplizierung
- Klärung der Unterschiedlichkeit der wuerfele-Methode
- mögliche Lösungen: "Universalklasse" oder Vererbung
- Entscheidung für Vererbung, Link zu Lösung mit Universalklasse+Diskussion
- Vorstellung der Vererbung an Einfachstbeispiel, UML und Delphi
- Polymorphe Variablen, einfaches Beispiel (Was geht: wAktuell := w4; w4 := wAktuell
- Erläuterung mit Bildern (bei einer Zuweisung müssen alle Datenfelder gefüllt werden)
- Einsatz des Cast-Operators ( Tw4(wAktuell).wuerfele )
- Lösung mit "Universalklasse", Diskussion
Material:
Links:
Rollenspielwürfel
Astragalus
Replika dazu
Vorteile der Vererbung
Begriffe in der objektorientierten Welt
Bilder:
auf Laufwerk I: bzw L: sind im Verzeichnis wxx Bilder von Rollenspielwürfeln
Kopien:
- S.55-S.58 aus Damann/Wemßen, Objektorientierte Programmierung mit Delphi, Band 2, Klett
- S.45-S.47 aus Bernd Oesterreich, Objektorientierte Softwareentwicklung
Zitate aus: Barnes/Kölling, Objektorientierte Programmierung mit Java
Anmerkung mk: Superklasse = Oberklasse, Subklasse = Unterklasse
Vererbung erlaubt uns, eine Klasse als Erweiterung einer anderen zu definieren.
Eine
Superklasse ist eine Klasse, die von anderen Klassen erweitert wird.
Eine
Subklasse ist eine Klasse, die eine andere Klasse erweitert bzw. von dieser
Klasse erbt. Sie erbt alle Datenfelder und Methoden von der Superklasse.
Klassen, die über Vererbungsbeziehungen miteinander verknüpft sind, bilden eine
Verebungshierarchie.
Vererbung erlaubt die
Wiederverwendbarkeit bereits erstellter Klassen in neuen
Zusammenhängen.
Subtyp.Analog zur Klassenhierarchie bilden die Objekttypen eine Typhierarchie. Der Typ, der
durch eine Subklasse definiert ist, ist ein Subtyp des Typs, der durch die zugeordnete
Superklasse definiert wird.
Variablen und Subtypen. Eine Variable kann ein Objekt halten, dessen Typ der Variablen
oder ein beliebiger Subtyp des deklarierten Typs ist.
Ersetzbarkeit. Objekte von Subtypen können an allen Stellen verwendet werden, an denen
ein Supertyp erwartet wird. Dieses Prinzip nennen wir Ersetzbarkeit.
Variable für objekttypen sind
polymorphe Variablen. Der Term polymorph (wörtlich:
vielgestaltig) bezieht sich auf den Umstand, dass eine Variable Objekte von verschiedenen
Typen (den deklarierten Typ der Variablen und den Subtypen dieses deklarierten Typs) halten
kann.
Programme:
vererbung0.zip vererbung2.zip
Für Quellcode:
hgh
hgfh
ghh