AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

override und virtual?

Ein Thema von queenmum · begonnen am 8. Mai 2006 · letzter Beitrag vom 8. Mai 2006
Antwort Antwort
queenmum

Registriert seit: 2. Mai 2006
Ort: Meerbusch
7 Beiträge
 
#1

override und virtual?

  Alt 8. Mai 2006, 11:10
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...
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: override und virtual?

  Alt 8. Mai 2006, 11:15
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.
  Mit Zitat antworten Zitat
queenmum

Registriert seit: 2. Mai 2006
Ort: Meerbusch
7 Beiträge
 
#3

Re: override und virtual?

  Alt 8. Mai 2006, 11:18
Habt ihr auch ein konkretes Beispiel dafür?
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: override und virtual?

  Alt 8. Mai 2006, 12:25
Ein Beispiel zum Verständniss:

Delphi-Quellcode:
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.
Bye
Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz