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.

162 8 Klassen und Meta-Klassen<br />

Durch den Einsatz der Pseudovariablen “super” ist es jedoch möglich, die ursprüngliche<br />

Vereinbarung der Methode “erfassenWert:” – in ihrer allgemeinen Form – innerhalb<br />

der Klasse “WerteErfassung” unverändert zu erhalten und eine geeignete<br />

Spezialisierung in einer gleichnamigen Instanz-Methode innerhalb der Klasse “ZaehlerWerteErfassung”<br />

in der folgenden Form vorzunehmen:<br />

erfassenWert: aPane<br />

super erfassenWert: aPane.<br />

Zaehler := Zaehler + 1<br />

Dieses Vorgehen verdeutlicht den Vorteil der Pseudovariablen “super”:<br />

ˆ Eine in einer Klasse vereinbarte Methode läßt sich – mit Hilfe der Pseudovariablen<br />

“super” – dadurch verändern, daß sie durch eine gleichnamige Methode in<br />

einer untergeordneten Klasse mittels einer Ergänzung durch eine oder mehrere<br />

Anforderungen spezialisiert wird.<br />

Sofern z.B. eine Methode namens “mK”, die in der Klasse “O” vereinbart ist<br />

und unter dem gleichen Namen “mK” innerhalb einer untergeordneten Klasse<br />

“U” – um weitere Anforderungen ergänzt – aufgerufen werden soll, stellt sich<br />

dies wie folgt dar:<br />

O<br />

Methoden:<br />

mK<br />

anforderungenKO<br />

U<br />

Methoden: mK<br />

super mK.<br />

anforderungenKU<br />

Abbildung 8.12: Spezialisierung von Methoden<br />

Führt eine Instanz der Klasse “U” die Methode “mK” aus, so werden zunächst<br />

die Anforderungen “anforderungenKO” und anschließend die Anforderungen<br />

“anforderungenKU” ausgeführt.<br />

Damit sich der Zähler, der der Klassen-Variablen “Zaehler” zugeordnet ist, abrufen<br />

läßt, vereinbaren wir für die Klasse “ZaehlerWerteErfassung” eine Klassen-Methode<br />

namens “anzeigenZaehler” in der folgenden Form:<br />

anzeigenZaehler<br />

Transcript cr;<br />

show: ’Anzahl der bislang insgesamt erfaßten Werte: ’;<br />

show: Zaehler printString

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!