Delphi的学习笔记十一——类3

1.类的继承

继承类的定义

{父类}
  TBase = class
    procedure msg1;
  end;
  {继承父类}
  TChild = class(TBase)
    procedure msg2;
  end;


对于子类与父类的使用与一般类的调用并没有特殊的区别,这里不再详述。在子类中,如果需要调用父类的方法,可以利用inherited指示字:

procedure TChild1.Proc;
begin
  inherited Proc;            {调用父类的 Proc 方法}
end;

 

2.类的封装

待补充。。。

3.类的多态性

多态是同一个方法在不同的对象里会有不同的实现。在定义类的多态的时候需要在父类创建虚方法,并在子类重写该方法。

{父类}
  TBase = class
    procedure alert;virtual; //定义一个虚方法
  end;

  {子类1}
   TChild1 = class(TBase)
    procedure alert;override;  //重载父类方法
   end;

   {子类2}
   TChild2 = class(TBase)
    procedure alert;override;
   end;

以下是对于类的调用

{调用父类的方法}
procedure TForm2.Button1Click(Sender: TObject);
var
  base : TBase;
begin
  base := TBase.Create;
  base.alert;
  base.Free;
end;

{调用子类1的方法}
procedure TForm2.Button2Click(Sender: TObject);
var
  base : TBase;
begin
  base := TChild1.Create;
  base.alert;
  base.Free;
end;


这里我们可以看到,对父类对象引用子类对象进行初始化,这也充分体现了类的多态性。

4.抽象类

用class abstract说明抽象类,但内部必须有抽象方法。例如

TMyClass5 = class abstract(TObject)
    procedure Proc; virtual; abstract;
  end;


类中数据成员的排列顺序一般是:字段、方法、属性。

5.类的向前声明

例如:

//解决方案 - 向前声明
  TClassB = class; {向前声明}

  TClassA = class
    Field1: string;
    Field2: Integer;
    Field3: TClassB;
  end;

  TClassB = class
    Field1: string;
    Field2: Integer;
  end;


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值