cjsh
Delphi、Java学习笔记

再引入(Reintroduce 

再引入指示字reintroduce用于防止编译器关于隐藏先前的虚拟方法给出警告。例如,

procedure DoSomething; reintroduce;  //祖先类中已经有一个DoSomething方法

想要用新的方法隐藏继承得到的虚拟方法时,可以使用reintroduce

 
 
范例:
unit ReintrF;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;
 
type
  TMyClass = class
    procedure One; overload; virtual;
    procedure One (I: Integer); overload;
  end;
 
  TMySubClass = class (TMyClass)
    procedure One; overload; override;
    procedure One (S: string); reintroduce; overload;
  end;
 
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.DFM}
 
{ MyClass }
 
procedure TMyClass.One;
begin
  ShowMessage ('MyClass.One');
end;
 
procedure TMyClass.One(I: Integer);
begin
  ShowMessage ('Integer: ' + IntToStr (I));
end;
 
{ MySubClass }
 
procedure TMySubClass.One;
begin
  ShowMessage ('MySubClass.One');
end;
 
procedure TMySubClass.One(S: string);
begin
  ShowMessage ('String: ' + S);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Obj: TMySubClass;
begin
  Obj := TMySubClass.Create;
  Obj.One;
  Obj.One (10);
  Obj.ONe ('Hello');
  Obj.Free;
end;
 
end.
posted on 2004-03-16 18:06  cjsh  阅读(1620)  评论(0编辑  收藏  举报