|
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、 类具有private、public、protected、published共4中访问属性。访问属性是指其他类对该类对象的可操作性,可读写性,以及其他类对本类中类方法(函数)的可操作性 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] 下一页 没有相关教程
|