捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >基础知识 > 正文
16 2020.02

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

点击次数:611 更新时间:2020-2-16 11:37:30  【打印此页
//类中的方法重载首先具备前面说过的重载相关的所有特点, 如:
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;
提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:611 更新时间:2020-2-16 11:37:30  【打印此页
关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修