• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

理解Delphi的类(十一)-深入类中的方法[6]-类中的方法重载

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
//类中的方法重载首先具备前面说过的重载相关的所有特点, 如:
TMyClass = class(TObject)
  function Fun(s: string): string; overload;
  function Fun(i: Integer): Integer; overload; 
  function Fun(x,y: Integer): string; overload;
end;

//但如果是重载父类中的方法, 如果父类中被重载的方法在本类中没有重载的话, 可以省略 overload 指示字 TBass = class(TObject) function Fun(s: string): string; {这里省略了 overload, 当然也可以不省略} end; TChild = class(TBass) function Fun(i: Integer): Integer; overload; end; {这个很好理解, 父类并不知道哪个子类要重载它的哪个方法}
//published 区中的方法命名要有唯一性, 该区域中的方法不能重载! {这样是不可以的} TMyClass = class(TObject) published function Fun(s: string): string; overload; function Fun(i: Integer): Integer; overload; end;
//这就有一个问题: 公共区域, 在默认情况下是归属于 published 区的, 为什么公共区域的函数可以重载? { 编译器会把公共区域中的重载函数自动归类到 public 区, 也可能会给 published 区一个; 这是我猜的, 没有资料可以参考. 关于这个问题, 我又搞了一个实验: } //在自动生成的 TForm1 类的公共区域添加重载方法: type TForm1 = class(TForm) procedure alert(s: string); overload; {No.1} procedure alert(s1,s2: string); overload; {No.2} private { Private declarations } public { Public declarations } end; //执行编译后, 只会留下第一个: type TForm1 = class(TForm) procedure alert(s: string); overload; {No.1} private { Private declarations } public { Public declarations } end;

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi编译指令说明发布时间:2022-07-18
下一篇:
Matlab函数索引发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap