Thema: Delphi Was bedeutet 'final'?

Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#15

Re: Was bedeutet 'final'?

  Alt 22. Feb 2007, 15:52
Gerade mit meinem Turbo Delphi getestet:
Delphi-Quellcode:
type
  ClassA = class
    function Test : String; virtual;
  end;

  ClassB = class(ClassA)
    function Test : String; reintroduce;
  end;

  ClassC = class(ClassA)
    function Test : String; override; final;
  end;
Das gibt keine Fehlermeldung.
Schreibt man das final zusaetzlich bei ClassA.Test dran, so gibt es eine Fehlermeldung fuer ClassC.Test das die Methode nicht ueberschrieben werden darf.
Bei ClassB.Test eingefuegt gibt es eine Fehlermeldung das die Methode nicht virtuell sei und daher kein final haben darf. Offensichtlich impliziert reintroduce nicht virtual. Schreibt man noch virtual dazu dann geht es wieder.

Edit:
final ist bestimmt nicht vor D8 implementiert. Das stammt vermutlich von den fuer .net noetigen Erweiterungen der Sprache.
  Mit Zitat antworten Zitat