Inhaltsverzeichnis
Das Projekt e-Kauf
im Buch1), S. 132 - 160
Das Programmpaket soll einen online-Shop simulieren, in dem Gebote für die angebotenen Artikel abgegeben werden können.
Abschn. 5.1 - ohne Vererbung
Das Projekt beginnt mit drei Klassen: Angebot
, Handy
und Computer
.
Jeder Artikel hat eine artikelbezeichnung
, ein gebot
und versandkosten
. Handys haben zusätzlich Angaben zu hersteller
, modell
und netze
, Computer haben zusätzliche Angaben zu prozessortyp
, festplattenkapazitaet
und arbeitsspeicher
.
Jeder Artikel hat die Methoden listeneintragAnzeigen()
und gesamtkostenBerechnen()
.
Wenn jetzt ein neuer Artikel ins Angebot aufgenommen werden soll, z.B. Auto
, müssen neben den speziellen Fähigkeiten auch alle gemeinsamen Fähigkeiten in der Klasse Auto
aufgenommen werden. Sollten hier Tippfehler bei den Schreibweisen der gleichartigen Instanzvariablen oder Methoden auftauchen, wird die Bedienung des e-Kauf-Systems zunehmend schwieriger.
Abschn. 5.2 - mit Vererbung
Um gleichartige Instanzvariablen und Methoden nicht in jeder Artikelart neu aufnehmen zu müssen, kann mit einem neuen Konzept gearbeitet werden: Vererbung. Zunächst wird eine zusätzliche Klasse Artikel
angelegt, die alle Instanzvariablen und Methoden erhält, die in allen Artikelklassen vorhanden sind. Im Beispiel wären das artikelbezeichnung
, gebot
, versandkosten
, listeneintragAnzeigen()
und gesamtkostenBerechnen()
.
Die speziellen Artikel, Handy
und Computer
werden als Subklassen (Unterklassen) von der Superklasse (Oberklasse) Artikel
abgeleitet - dadurch erben diese Unterklassen alle (nicht privaten) Instanzvariablen und Methoden der Oberklasse und können diese wie eigene Instanzvariablen und Methoden verwenden. Spezielle Instanzvariablen und Fähigkeiten können dann in der Unterklasse ergänzt werden. Dadurch werden Inkonsistenzen bei der Schreibweise der allgemeinen Instanzvariablen und Methoden vermieden, gleichzeitig bleibt die Möglichkeit der Spezialisierung.
Interessant wird es jetzt in der Klasse Angebot
. Bislang musste für jede Artikelart eine eigene Liste geführt werden - sobald neue Artikel ins Angebot kommen, mussten neue Listen und zugehörige Methoden erstellt werden. Auch hier hilft die Vererbung weiter: Eine Liste, die für Objekte vom Typ Artikel
, also der Oberklasse angelegt wurde, kann sämtliche speziellen Artikel speichern. Die Klasse Angebot
benötigt also nur noch eine Liste für die Angebote und nur noch eine Methode, um die Angebote einzustellen.
Die neue Schwierigkeit ist jetzt, weiter auf die speziellen Fähigkeiten der Unterklassen zugreifen zu können - denn ein Artikel, der in die Artikelliste gesteckt wurde, kommt als Artikel wieder heraus - das Handy wirkt nach außen also anschließend als allgemeiner Artikel, genau wie der Computer. Diese Schwierigkeit kann behoben werden, indem in der Unterklasse gleichnamige Methoden wie in der Oberklasse existieren, die die Methode der Oberklasse überschreiben und damit auch anschließend spezielles Verhalten zur Verfügung stellen.