Delphi——多态之相关对象的多态性(通过继承实现)

1-相关对象的多态性是通过继承实现的,不相关对象的多态性是根据接口实现的;
2-实例设计
一个简单工厂工资的实例
1)分为5个单元和1个窗体
5个单元分别为:UntPerson;UntBoss;UntEmployee;UntPieceWorker; UntHourlyWorker;
(基类是UntPerson,其它都继承自基类)
1个窗体里面含 :1个listbox控件和1个button按钮
2) 目的:薪资计算是在基类里面的一个抽象虚方法,子类分别实现它
利用多态思想 分别计算:老板、普通雇员、计件工、小时工的工资
3-窗体展示
在这里插入图片描述
4-结果展示[
在这里插入图片描述

5-代码展示
1)UntPerson;

unit UntPerson;

interface
type
  TPerson=class
     private
       FName:string;     //定义私有成员
     public              //公共方法
       constructor Create(NameValue:string); //构造器 (传入一个string类型的参数)
       function Earnings:Real; virtual;abstract;         //定义一个名字为收入的函数, 返回实数  ,抽象的方法只能由子类实现
       property Name:string read FName write FName;
end;

implementation

{
    TPerson }

constructor TPerson.Create(NameValue: string);
begin
  FName:=NameValue;       //传值,将名为 NameValue  的参数传入
end;

end.

2)UntBoss

unit UntBoss;

interface
uses
  UntPerson;
type
  TBoss=class(TPerson)
    private
      FSalary:Real;
    public
      constructor Create(NameValue:string;SalaryValue:Real);
      function Earnings:Real;override;
      property WeeklySalary:Real read FSalary write FSalary;

  end;
implementation



{
    TBoss }

constructor TBoss.Create(NameValue: string; SalaryValue: Real);
begin
  inherited Create(NameValue);     //调用父类的构造器
  WeeklySalary:=SalaryValue;     
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值