• 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.

  • 相关阅读:
    ubuntu14.04安装chromium以及flash插件
    linux fuser的使用
    对max_allowed_packet这个参数的误解
    Linux hostname主机名配置文件与文件 /etc/hosts解析(copy来的,原作者看到了别打我)
    三个参数,对mysql存储限制的影响
    唉,没来这里好久了,也意味着我这一年多来没干什么正事儿,是回归的时候了!(简单谈谈爬虫的解析器)
    STM32 宏定义翻转端口
    ascii码表
    平均值算法
    stm8 16M晶振下精确软件延时
  • 原文地址:https://www.cnblogs.com/feng801/p/1336429.html
Copyright © 2020-2023  润新知