【问题标题】:Delphi - Interfaces and overload directiveDelphi - 接口和重载指令
【发布时间】:2011-12-14 04:09:42
【问题描述】:

我对 Delphi 中的接口有点困惑,所以我问你这个问题。接口可以与抽象类“关联”。 (它不实现上面声明的方法。)上面声明的所有方法都在实现接口的类/类中实现。

那么,为什么允许在接口的方法声明中使用重载指令呢?

type 
 IFoo = interface
  function Test : String; overload;
 end;

编译器对此保持沉默。

【问题讨论】:

  • -1。我不明白你关于接口的前两个陈述与你的问题有什么关系。是的,接口与类相关联,是的,类实现了接口的方法。为什么您认为其中任何一个都与在接口方法上使用 overload 有关?请澄清您的问题。
  • 进一步,“可见性操作符”是什么意思?
  • 我希望这个问题现在更清楚了。
  • @RBA:为什么你应该不允许使用重载方法?
  • @Andreas,阅读他对 da-softs 答案的评论,他可能对超载和覆盖感到困惑。

标签: delphi oop interface


【解决方案1】:
  1. overloaded 允许在单个类/接口中拥有几个相同命名的方法,但具有不同的参数集。
  2. 您的界面有Test 方法。使用这种单一方法,就不需要overloaded。但如果需要,您可以引入具有不同参数集的其他 Test 方法。
  3. 可能您正在考虑override 指令...

【讨论】:

  • 覆盖指令不能放在接口的方法声明中。为答案+1
猜你喜欢
  • 2021-04-14
  • 2018-03-04
  • 2012-08-28
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 2015-11-06
相关资源
最近更新 更多