DELPHI 关于inherited 返回值

type
  TFrame3 = class(TFrame)
  private
    { Private declarations }
  public
    { Public declarations }
    function test():string;
  end;

implementation

{$R *.dfm}

{ TFrame3 }

function TFrame3.test: string;
begin
     Result:='test';
end;

继承上面的Frame,并添加一个EDIT和BUTTON控件,用于测试返回值:

type
  TFrame2 = class(TFrame3)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function test():string;
  end;

implementation

{$R *.dfm}

{ TFrame2 }

procedure TFrame2.Button1Click(Sender: TObject);
begin
     Edit1.Text:=test;
end;

function TFrame2.test: string;
begin
     //inherited;  // 隐含调用父类同名方法,不关心返回值
     //Result:= Result + '123';   //这里的Result 初始值为空.所以只返回 '123'
     Result:= inherited test + '123';    //明确获取父类方法的返回值.返回'test123'
end;

end.

 

posted @ 2026-01-13 07:57  一曲轻扬  阅读(6)  评论(0)    收藏  举报