打印本文 打印本文 关闭窗口 关闭窗口
DELPHI面向对象参考
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3695  更新时间:2009/4/23 18:26:21  文章录入:mintao  责任编辑:mintao
eintroduce

当父类中以定义了一方法,派生类再定义同签名的方法将会隐藏父类的方法,如果不希望这种结果出现,可在派生类定义方法时,加此标志,声明方式:

procedure[function] 方法名(参数表)[:返回值];reintroduce;

2、  self

self代表了实例对象自身。类的所有数据成员和函数成员都隐含存在于with self do结构范围内。使用方法:

self.Edit1.text:=’’;

3、  is

is用于进行实例对象的类型检查,以Boolean返回是否是该类实例(或派生类实例),使用方法:

if Edit1 is Tedit then …

4、  as

as用于进行对象的强制类型转换,一般适用于子类向父类的转换(特殊→一般),而从父类到子类的转换可能失败。在使用时,可结合is进行判断,使用方式:

if Sender is Tedit then (Sender as TEdit).Text:=’’;

五、类内部成员可见性

1、  类具有privatepublicprotectedpublished4中访问属性。访问属性是指其他类对该类对象的可操作性,可读写性,以及其他类对本类中类方法(函数)的可操作性

2、  private:本类内部使用;声明在同一单元的其他类可使用

3、  public:本类、本类派生类、其他类都可访问

4、  protected:本类、本类派生类可访问。其他类不可访问

5、  published:所有类都可访问。

综合举例:

TClass1=class

private

  {内部数据/状态储存声明}

  FName: string;

  FAge: Integer;

  {内部属性写方法声明}

  procedure SetAge(const Value: Integer);

protected

  {保护虚方法声明}

  procedure Eat;virtual;

public

  {公有属性/状态储存声明}

  Sex: string;

published

  {公共属性发布声明}

  {构造函数}

  constructor create;

  {具有读/写方法的属性声明}

  property Name:string read FName write FName;

  property Age: Integer read FAge write SetAge;

end;

TClass2=class

private

  FSex: string;

published

  constructor create;

end;

TClass11=class(TClass1)

public

  {覆盖了父类中同名的方法,提升了方法的可见性}

  procedure Eat;override;

end;

 

{ TClass1 }

 

constructor TClass1.create;

begin

end;

 

procedure TClass1.Eat;

begin

 

end;

 

上一页  [1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口