Final (Delphi)

From RAD Studio
Jump to: navigation, search

Go Up to Fundamental Syntactic Elements


Syntax

function|procedure FunctionName;  virtual|dynamic ; final;

Description

A class function or procedure marked as final cannot be overridden in derived classes. This keyword can be used to revoke the ability of overriding methods in derived classes.

Only virtual or dynamic methods can be marked as final.

Note: The virtual or dynamic keywords must be written before the final keyword.

Example

type
  Base = class
    procedure TestProcedure; virtual;
    procedure TestFinalProcedure; virtual; final;
  end;

  Derived = class(Base)
    procedure TestProcedure; override;
    //Ill-formed: E2352 Cannot override a final method
    procedure TestFinalProcedure; override;
  end;

See Also