24.11.2013 Aufrufe

5 Objektorientiertes Design

5 Objektorientiertes Design

5 Objektorientiertes Design

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!