关于OOP的问题(100分)

B

bugcool

Unregistered / Unconfirmed
GUEST, unregistred user!
TPlateFromDB = class
private
public
constructor Create;
Destructor Destroy;Overload;
end;

TPlatefromDB2 = Class(TPlateFromDB)
Private
Public
constructor Create;
destructor Destroy;overload;
end;
我声明了上面两个类,
其中TPlateFromDB2的destory方法好像
并没有执行,怎么回事?
create,destroy方法后面的标示符到底
怎么用?
virtual,dynamic,overload能解释他们的
用法么?
 
virtual 虚类型
dynamic 动态
overload 重载
 
destructor Destroy;override;
 
override overload有什么区别?
 
一个是重写,一个是重载。
 
dynamic和virtual 功能差不多,只是dynamic是Delphi特有的,要想兼容的话用virtual好一些
 
★★★关于方法定义关键字的说明:

如果在过程定义声明时包括了的关键字的含义:
static 表示是静态方法;静态方法是方法的缺省类型,不能被覆盖;
virtual 表示是虚拟方法;
dynamic 表示是动态方法;
这两类方法的共同点是都可以被覆盖(override),区别仅在于运行时调用方法时的派发机
制,virtual方法为执行速度做了优化,而dynamic方法则为代码大小做了优化;经常被覆盖的
方法应该定义为virtual方法;
message 表示是消息处理方法;在关键字message后面的值指明了这个方法要响应的消息;
用消息处理方法来响应Windows的消息,这样就不用直接来调用它;
override 表示是覆盖方法;要求祖先类中必须有该方法的定义,并且参数的顺序和类型
及返值的类型必须匹配;用于扩展祖先类中的该方法而不是取代它(如不调用祖先类中的该方
法则等同于取代);
overload 表示是重载方法;用于一个类中有许多同名的方法带着不同的参数表的情形;
(属性的读写方法不能被重载);
abstract 表示是抽象方法;是没有实现的方法,并且必须是virtual或dynamic方法,即
在abstract前面必须有virtual或dynamic关键字,其实现部分在派生类中;如
procedure DoSomething; virtual; abstract;
reintroduce表示是重新声明的方法;用于方法的名称与祖先类中的某个方法名称相同的情形;

 
楼上的精辟!收藏中。。。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
672
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部