![]() |
Wann/warum eine Methode als "virtual" deklarieren?
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 |
Re: Wann/warum eine Methode als "virtual" deklarie
Kuck mal hier:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz