11.11.2013 Aufrufe

TMain - Goethe Gymnasium Dortmund

TMain - Goethe Gymnasium Dortmund

TMain - Goethe Gymnasium Dortmund

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.

public, private, protected, virtual, override<br />

Das sinnvolle Konzept der Schutzklassen private und public (und protected) ist<br />

in Delphi leider nicht konsequent umgesetzt worden. Der Grund dafür liegt in<br />

der beabsichtigten, möglichen Kompatibilität bzw. Übertragbarkeit von und zu<br />

den älteren Pascal-Programmen.<br />

Leider gilt deshalb folgende Einschränkung in Delphi:<br />

Innerhalb einer Unit kann man immer auf alle, insbesondere auch auf<br />

private Bestandteile einer Klasse zugreifen, auch wenn sich diese in einer<br />

anderen Klasse (in derselben Unit) befinden.<br />

Die Schutzklassen private bzw. protected schützen also immer nur dann,<br />

wenn versucht wird, auf Attribute oder Methoden einer Klasse zuzugreifen,<br />

die in einer anderen Unit definiert ist.<br />

Unabhängig von obiger Einschränkung werden wir alle unsere Programme so<br />

schreiben, als würde obige Einschränkung nicht gelten !<br />

Wenn man in der Unterklasse eine Methode (neu) definiert, die denselben<br />

Namen wie eine Methode der Oberklasse besitzt, so existieren in der<br />

Unterklasse beide Methoden, allerdings wird die ererbte Methode durch die neu<br />

definierte verdeckt (ähnlich verhält es sich z.B. mit lokalen und globalen<br />

Variablen gleichen Namens in Prozeduren). Üblicherweise gibt es dann beim<br />

Compilieren eine entsprechende Warnung: [Warning] Method 'Create' hides<br />

virtual method of base type'<br />

Das Erzeugen dieser Warnung lässt sich allerdings unterdrücken, wenn man<br />

hinter dem Namen der neu definierten Methode den Zusatz reintroduce; angibt.<br />

Beispiel: procedure Methodenname(…..); reintroduce; virtual;<br />

41

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!