delphi中关键字inherited

来源:互联网 发布:js删除指定tr 编辑:程序博客网 时间:2024/06/07 18:58

A是基类、B继承A、C继承B、若C函数中有inherited方法,则C中所调用的以及实现的就是全为B中的,同样,B中若有inherited,则B中调用的全为A中的。

 

代码如下:

 

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function show:Integer;virtual;
    function NumCount:Integer;virtual;
  end;

  TForm2 = class(TForm1)
  public
    function NumCount:Integer;override;
  end;

  TestA = class
  public
    function TestXX:string;virtual;
  end;
  TestB = Class(TestA)
  public
    function TestXX:String;override;
  End;
  TestC = class
  public
    function Test:string;
  end;

var
  Form1: TForm1;

implementation
var
  X,Y : Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(TestC.Create.Test);
end;


{$R *.dfm}

{ TestA }

function TestA.TestXX: string;
begin
  Result := 'TestA';
end;
{ TestB }
function TestB.TestXX: String;
begin
  Result := inherited TestXX + ','+'TestB'
end;
{ TestC }
function TestC.Test: string;
var
  ATest : TestA;
begin
  ATest := TestB.Create;
  Result := ATest.TestXX;
end;
end.

 

原创粉丝点击