TMain - Goethe Gymnasium Dortmund
TMain - Goethe Gymnasium Dortmund
TMain - Goethe Gymnasium Dortmund
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