Einzelnen Beitrag anzeigen

pimpf

Registriert seit: 13. Feb 2004
9 Beiträge
 
#1

Wann/warum eine Methode als "virtual" deklarieren?

  Alt 13. Jun 2004, 00:43
Hallo zusammen,

ich habe ein Verständnisproblem und hoffe, dass mir jemand das ganze erklären kann. Ich habe eine Unit geschrieben, in der zwei Typen deklariert werden, u. a. mit folgenden Methoden:

type
TZaehler = Class(TForm)
...
procedure Click;
...
private
...
procedure Write; virtual;
end;

TUhr = class(TZaehler)
...
procedure Click;
...
private
...
procedure Write; override;
end;

Nun meine Frage: Wenn ich die Methode "Write" der Klasse TZaehler nicht als "virtual" deklariere (und "Write" von TUhr mit dem Schlüsselwort "override" versehe), dann funktioniert das Überschreiben der Methode Write in TUhr nicht. Was ich nicht verstehe: Es ist offensichtlich nicht nötig, den Zusatz "virtual" bei der als "public" deklarierten Methode "Click" hinzuzufügen. Hier funktioniert die Zuordnung der korrekten Methode problemlos. Mir ist schon klar, dass das ganze damit zu tun hat, dass "Write" als "private" deklariert wurde, aber ich weiß nicht, wie das ganze zusammenhängt (und ich würde es gerne verstehen und nicht nur anwenden...).

Wäre klasse, wenn mir jemand die Zusammenhänge erklären könnte.

Gruß,
pimpf
  Mit Zitat antworten Zitat