急求 override overload的区别

软件钢琴师 2009-08-30 10:58:43
急求 override overload的区别
...全文
144 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxsan 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 willflyz 的回复:]
ovrride是覆盖父类的关键字,在vcl当中在父类里很多方法会定义成虚拟方法virtual,在子类当中可以覆盖父类的方法,也可以用inherited调用父类的方法.
overload这个才是重载吧,定义两个同名的方法时会用到如
procedure test(age:integer);overload;
procedure test(age:integer;Name:String);overload;
[/Quote]

这个解释比较好!~~
Dolphin_001 2009-08-31
  • 打赏
  • 举报
回复
override: 覆盖 通常是父類有此方法,子類想重新實現方法,才出現了override。
overload: 同個類或單元或進程里面方法的重载。范圍是相同,和override不一樣,override的范圍是子類與父類之間的覆蓋。
try__again 2009-08-31
  • 打赏
  • 举报
回复
没分了,不掺和了
alanhao 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 willflyz 的回复:]
ovrride是覆盖父类的关键字,在vcl当中在父类里很多方法会定义成虚拟方法virtual,在子类当中可以覆盖父类的方法,也可以用inherited调用父类的方法.
overload这个才是重载吧,定义两个同名的方法时会用到如
procedure test(age:integer);overload;
procedure test(age:integer;Name:String);overload;
[/Quote]
正确啊
ZyxIp 2009-08-31
  • 打赏
  • 举报
回复
一个类想要两个两个名字的方法,则要用overload
TMyNodeList=class

public
//给定一个节点名称,创建一个节点后添加到当前列表中
function Add(const ATitle:String):TMyNode;overload;
//将给定的节点添加到当前列表中
function Add(ANode:Integer):Integer;overload;
end;


类有个方法,想要它的子类自己实现,是要用 override;

TMyList=class
procedure Sort;virtulal;
end;

TMyIntList=class(TMyList)
procedure Sort;override;
end;

TMyStrList=class(TMyList)
procedure Sort;override;
end;
Corn1 2009-08-31
  • 打赏
  • 举报
回复
override: 覆盖 子类覆盖父类的实现
overload: 重载
diecode 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mdejtod 的回复:]
蹭点分
override :必须在基类中声明为虚方法,才能在派生类中使用覆盖的关键字,在函数体内,你可以选择是否
            需要继承基类的方法,使用inherited关键字
overload : 与类无关,任一方法或函数都可以定义为重载函数,当然这种些函数和名称得相同,不同的是使用的参数及类型,参数个数等
[/Quote]
同意
mdejtod 2009-08-30
  • 打赏
  • 举报
回复
蹭点分
override :必须在基类中声明为虚方法,才能在派生类中使用覆盖的关键字,在函数体内,你可以选择是否
需要继承基类的方法,使用inherited关键字
overload : 与类无关,任一方法或函数都可以定义为重载函数,当然这种些函数和名称得相同,不同的是使用的参数及类型,参数个数等
willflyz 2009-08-30
  • 打赏
  • 举报
回复
ovrride是覆盖父类的关键字,在vcl当中在父类里很多方法会定义成虚拟方法virtual,在子类当中可以覆盖父类的方法,也可以用inherited调用父类的方法.
overload这个才是重载吧,定义两个同名的方法时会用到如
procedure test(age:integer);overload;
procedure test(age:integer;Name:String);overload;
dd_zhouqian 2009-08-30
  • 打赏
  • 举报
回复
override:是类的方法重载
overload:是函数可以重名,但参数不能一样。
willflyz 2009-08-30
  • 打赏
  • 举报
回复
override :必须在基类中声明为虚方法,
--不只是虚方法,动态方法(dynamic)也是可以在子类中用override覆盖父类方法的.

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧