关于继承的方式测试

来源:互联网 发布:无主之地2画面优化 编辑:程序博客网 时间:2024/05/22 12:04

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
 TBase=class
 public
   function AAA:string;
   function BBB:string;virtual;
   function CCC:string;
 end;

 TA=class(TBase)
 public
   function AAA:string;
   function BBB:string;override;
   function CCC:string;reintroduce;
 end;

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  obj:TA;
begin
  obj:=TA.Create;
  //ShowMessage(obj.AAA); {TA AAA}
  //ShowMessage(TBase(obj).AAA);{BASE AAA}
  //ShowMessage(obj.BBB);{TA BBB}
  //ShowMessage(TBase(obj).BBB);{TA BBB}
  //ShowMessage(obj.CCC);{TA CCC}
  //ShowMessage(TBase(obj).CCC); {BASE CCC}
end;

{ TA }

function TA.AAA: string;
begin
   Result:='TA AAA';
end;

function TA.BBB: string;
begin
   Result:='TA BBB';
end;

function TA.CCC: string;
begin
   Result:='TA CCC';
end;

{ TBase }

function TBase.AAA: string;
begin
  Result:='Base AAA';
end;

function TBase.BBB: string;
begin
  Result:='Base BBB';
end;

function TBase.CCC: string;
begin
  Result:='Base CCC';
end;

end.

原创粉丝点击