2008-10-03 85 views
8

如何在Delphi(2007)中的子類中覆蓋超類中的函數/過程?停止在Delphi中覆蓋函數

我想標記它,所以它不能改變,我相信有一個最終的關鍵字,但不能爲我的生活找到它的文檔,所以我不是100%肯定這就是我所需要的。

回答

9

你說得對高德爾福版本 - 這是「最後」。這段代碼顯示它。 (從的Marco Cantu書籍之一)

type 
    TDeriv1 = class (TBase) 
    procedure A; override; final; 
    end; 

    TDeriv2 = class (TDeriv1) 
    procedure A; override; // error: "cannot override a final method" 
    end; 

編譯給出:

[Pascal Error] Unit1.pas(11): E2352 Cannot override a final method 

一個令我吃驚的事:該功能在Win32的德爾福的支持,而不僅僅是德爾福的.NET