![]() |
override und virtual?
Ich habe nochmal eine Frage:
Wann konkret benutze ich eigentlich override und wann virtual? Ich versteh die ganzen Erklärungen in sämtlichen Büchern nicht so richtig. Wäre schön, wenn mir hier jemand helfen könnte... |
Re: override und virtual?
Na eine neue Methode deklariert man virtual wenn man sie in abgeleiteten Klassen mit override ueberschreiben will.
virtual ist also die Basis fuer die Ableitungen der Methode. reintroduce benutzt man wenn man beim Ableiten die Methode mit anderen Parametern versehen will. |
Re: override und virtual?
Habt ihr auch ein konkretes Beispiel dafür?
|
Re: override und virtual?
Ein Beispiel zum Verständniss:
Delphi-Quellcode:
Bye
Unit BunteFarben;
Interface Type TFarbe = Class Protected { Protected-Deklaration } Function GetFarbe: Integer; Virtual; Abstract; Function GetKlasse: String; Virtual; Public { Public-Deklaration } Property Farbe: Integer Read GetFarbe; Property Klasse: String Read GetKlasse; End; Type TFRot = Class( TFarbe ) Protected { Protected-Deklaration } Function GetFarbe: Integer; Override; Function GetKlasse: String; Override; Public { Public-Deklaration } End; Type TFRoterFarbkasten = Class( TFarbe ) Protected { Protected-Deklaration } Function GetFarbe( Farbe: TFarbe ): Integer; Reintroduce; Function GetKlasse( Farbe: TFarbe ): String; Reintroduce; Public { Public-Deklaration } Property Farbe[ Farbe: TFarbe ]: Integer Read GetFarbe; Property Klasse[ Farbe: TFarbe ]: String Read GetKlasse; End; Implementation { TFarbe } Function TFarbe.GetKlasse: String; Begin Result := 'Basis...'; End; { TFRot } Function TFRot.GetFarbe: Integer; Begin Result := $0000ff; End; Function TFRot.GetKlasse: String; Begin Result := 'Rote Farbe'; End; { TFRoterFarbkasten } Function TFRoterFarbkasten.GetFarbe( Farbe: TFarbe ): Integer; Begin Result := Farbe.Farbe; End; Function TFRoterFarbkasten.GetKlasse( Farbe: TFarbe ): String; Begin Result := Farbe.Klasse; End; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 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