关于重载与覆盖的问题 (50分)

  • 主题发起人 主题发起人 PigDong
  • 开始时间 开始时间
P

PigDong

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个窗体,想将其构造函数重载!原函数为Create(Aowner:Tcomponent),想将其载现在的
窗体重重载一下,改为Create(Aowner:Tcomponent;Str:String),但是老是编译出错!请各位
老大指点!
 
Overriding a method causes a compilation error if
The method does not exist in the ancestor class.
The ancestor method of that name is static.
The declarations are not otherwise identical (number and type of arguments parameters differ).
如果 1在祖先类中不存在这个方法。2祖先类中的这个方法是静态的。3方法的声明不一致(参数的个数和类型不一样)。
重载方法将导致编译错误。
你犯了第三条。
 
同意jsbhwjg
 
用overload:
Type
TClass1=Class
Procedure one;-----------1
end;
TClass2=class(TClass1)
procedure one(s:string);overload;----------2
end;
如果1的参数与2相同,那么2将替换1,如果1是虚拟的,则2后加reintroduce;
 
多人接受答案了。
 
后退
顶部