5 Objektorientiertes Design
5 Objektorientiertes Design
5 Objektorientiertes Design
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
66 3 <strong>Objektorientiertes</strong> <strong>Design</strong><br />
verstreut in vielen Klassen durchzuführen sind. Beim Einsatz von Vererbung sind Änderungen<br />
häufig lediglich an wenigen Stellen, im Idealfall sogar nur einer Stelle, notwendig.<br />
Durch Vererbung entsteht eine Klassenhierarchie. Von einer Spezialisierung<br />
spricht man, wenn man die Klassenhierarchie gedanklich in Richtung Subklassen<br />
durchläuft. Eine Generalisierung ist der Weg in Richtung Basisklassen. Dies zeigt Abbildung<br />
3-4.<br />
Basis - //<br />
Ober - //<br />
Superklasse<br />
Generalisierung<br />
Spezialisierung<br />
abgeleitete //<br />
Subklasse<br />
Abbildung 3-4 Generalisierung und Spezialisierung<br />
Vererbung sollte nur dann eingesetzt werden, wenn die sogenannte »is-a«-Beziehung<br />
erfüllt ist. Diese besagt, dass Subklassen tatsächlich eine semantische Spezialisierung<br />
ihrer Basisklasse darstellen und alle Eigenschaften der Basisklasse besitzen. Wird diese<br />
Forderung nicht beachtet, so handelt es sich um eine sogenannte Implementierungsvererbung.<br />
Diese ist zu vermeiden, weil dann durch Vererbung nur benötigte Funktionalität<br />
übernommen wird, jedoch semantisch kein Subtyp definiert wird: Objekte einer<br />
Subklasse können dann konzeptuell nicht mehr als Objekte der Basisklasse betrachtet<br />
werden. Abbildung 3-5 zeigt ein Positiv- und ein Negativbeispiel.<br />
ArrayList<br />
Ausgabegerät<br />
is-a<br />
is-a<br />
CD-Sammlung Drucker Bildschirm<br />
Abbildung 3-5 Vererbung und »is-a«-Beziehung<br />
Sub-Classing und Sub-Typing Spezialisierung ist sowohl zwischen Klassen als<br />
auch zwischen Interfaces möglich. Beides wird durch das Schlüsselwort extends ausgedrückt.<br />
Zwischen Klassen wird durch Spezialisierung ein Vererben von Verhalten