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

1.类的继承
继承类的定义

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



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

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;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值