override,overload,virtual,reintroduce,....等等的含义区别(50分)

  • 主题发起人 主题发起人 flyinsky
  • 开始时间 开始时间
Virtual 虚拟方法。
Override 覆盖虚拟方法。
overload 重载方法,相同函数名,不同参数,不同返回值
reintroduce 重新申明方法
 
overload 一个过程是不是在他的父类中该过程也使用了 overload
reintroduce 好象可有可恶,具体作用什么?
看个例子给我分析一下。
type
TMyClass = class
procedure One;
overload;virtual;
procedure One (I: Integer);
overload;
end;

TMySubClass = class (TMyClass)
procedure One;
overload;
override;
procedure One (S: string);
reintroduce;
overload;
end;
 
override主要用于继承树当中的同名的元素(过程、函数、属性、事件)
的有效性区分,如果一个类override了父类的元素,那么父类的同名元素
将失效。overload用于同一作用域中的同名函数标志符的有效性区分,
在同一作用域中,可以有多个过程或函数拥有同样的名字,但有不同的
参数表或者返回值。至于具体采用哪个函数由调用的实际情况决定。
它们的不同主要在于,override是上下级的,而overload是平级的。
 

PostMessage (Handle, wm_User, 0, 0);
 

Similar threads

回复
0
查看
876
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
I
回复
0
查看
597
import
I
I
回复
0
查看
470
import
I
后退
顶部