03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

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.

5.4 Abstrakte Klassen 87<br />

5.4 Abstrakte Klassen<br />

Durch die stufenmäßige Gliederung innerhalb der Klassen-Hierarchie ist festgelegt,<br />

in welcher Reihenfolge die einzelnen Klassen nach Methoden durchsucht werden,<br />

sofern deren Ausführung für Instanzen dieser Klassen angefordert wird.<br />

Im Hinblick auf diese Suchreihenfolge stellt das <strong>SMALLTALK</strong>-System bestimmte<br />

Basis-Methoden, deren Ausführung sich für Instanzen verschiedener, auf derselben<br />

Hierarchiestufe angeordneter Unterklassen eignen, zusammenfassend in einer gemeinsamen<br />

Oberklasse zur Verfügung.<br />

In einer derartigen Oberklasse sind z.B. alle diejenigen Basis-Methoden festgelegt,<br />

mit denen sich Vergleiche von Zahlen oder Texten durchführen lassen.<br />

Oberklassen mit diesen Eigenschaften haben eine grundlegende Funktion innerhalb<br />

der Klassen-Hierarchie.<br />

ˆ Eine Klasse mit mindestens einer Unterklasse, die vornehmlich der Vereinbarung<br />

von Methoden dient, die für untergeordnete Klassen zur Verfügung<br />

gehalten werden, wird abstrakte Klasse genannt.<br />

Von dieser Art von Klassen werden in der Regel keine Instanzen erzeugt. Sie<br />

dienen vor allem zur zusammenfassenden Beschreibung gemeinsamer Eigenschaften<br />

ihrer Unterklassen.<br />

Im Zuge der Erweiterung der Klassen-Hierarchie können abstrakte Klassen auf jeder<br />

Hierarchiestufe eingerichtet werden.<br />

Hinweis: Ausgenommen ist lediglich die unterste Ebene, da es dann keine konkreten Objekte<br />

gäbe, die die vereinbarten Attribute und Methoden verwenden könnten.<br />

Abstrakte Klassen werden zum Beispiel dann vereinbart, wenn Klassen zwar gewisse<br />

Gemeinsamkeiten besitzen, aber dennoch nicht in Ober- und Unterklassen gegliedert<br />

werden können. In diesem Fall ist es sinnvoll, eine neue gemeinsame Oberklasse als<br />

abstrakte Klasse festzulegen.<br />

Dieser Sachverhalt ist z.B. in der folgenden Situation der Fall:<br />

K1<br />

mK<br />

anforderungen1.<br />

self mK1<br />

K2<br />

mK1<br />

anforderungen2<br />

K3<br />

mK1<br />

anforderungen3<br />

Abbildung 5.8: Abstrakte Klasse<br />

Mit der Methode “mK” haben wir eine allgemein gehaltene Methode in der Klasse<br />

“K1” vereinbart, die von Instanzen der Unterklassen “K2” und “K3” ausgeführt<br />

werden kann. Dabei erreichen wir durch den Einsatz von “self mK1”, daß durch<br />

die Ausführung dieser Anforderung die Methode “mK1” der Klasse “K2” oder die

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!