• Inherited用法代码示例


    unit Unit1;

    interface

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

    type
      TForm1 = class(TForm)
        btn1: TButton;
        btn2: TButton;
        btn3: TButton;
        procedure btn1Click(Sender: TObject);
        procedure btn2Click(Sender: TObject);
        procedure btn3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
      THuman=class   //基类
      public
      procedure showinfo1;virtual;
      procedure showinfo2;virtual;
      end;
      TStudent=class(Thuman)   //派生类
      public
      procedure showinfo1;override;//   虚拟继承
      procedure showinfo2;override;
      end;
      TWorker=Class(THuman)   //派生类
      public
      procedure showinfo1;override;
      procedure showinfo2;override;
      end;


    var
      Form1: TForm1;

    implementation

    {$R *.dfm}
    procedure THuman.showinfo1;
    begin
    ShowMessage('THuman   Showinfo1');
    end;
    procedure THuman.showinfo2;
    begin
    ShowMessage('THuman   Showinfo2');
    end;
    procedure TStudent.showinfo1;
    begin
    ShowMessage('TStudent   Showinfo1');
    inherited showinfo2;   //调用父类中不同名的成员函数
    end;
    procedure TStudent.showinfo2;
    begin
    ShowMessage('TStudent   Showinfo2');
    end;
    procedure TWorker.showinfo1;
    begin
    ShowMessage('TWorker   Showinfo1');
    inherited;   //调用父类中的同名函数
    end;
    procedure TWorker.showinfo2;
    begin
    ShowMessage('TWorker   Showinfo2');
    end;
    procedure TForm1.btn1Click(Sender: TObject);
    var
    H:THuman;
    begin
    H:=THuman.Create;
    h.showinfo1;
    h.showinfo2;
    end;

    //运行结果'THuman   Showinfo1'

    //然后'THuman   Showinfo2'
    procedure TForm1.btn2Click(Sender: TObject);
    var
    S:TStudent;
    begin
    s:=TStudent.Create;
    s.showinfo1;
    s.showinfo2;
    end;

    //运行结果'TStudent   Showinfo1'

    //然后'THuman   Showinfo2'

    //然后'TStudent   Showinfo2'


    procedure TForm1.btn3Click(Sender: TObject);
    var
    W:TWorker;
    begin
    w:=Tworker.Create;
    w.showinfo1;
    w.showinfo2;
    end;

    //运行结果'TWorker   Showinfo1'

    //然后'THuman   Showinfo1'

    //'TWorker   Showinfo2'
    end.

  • 相关阅读:
    Sublime Text 无法使用Package Control或插件安装失败的解决方法
    phpstorm破解
    require
    在线支付
    解决华为手机用rem单位,内容超出屏幕宽度问题
    JS如何判断是不是iphoneX
    iPhoneX页面安全区域与内容重叠问题
    .NET 大数据量并发解决方案
    js 弹出div窗口 可移动 可关闭
    colgroup 整行变色
  • 原文地址:https://www.cnblogs.com/feng801/p/1336429.html
Copyright © 2020-2023  润新知