如果我有       B级:A {}

我说“B类继承了 A类”或“B类来自A类”。

但是,如果我改为:

  class B : ISomeInterface   {}

说“B继承ISomeInterface”是错误的。 - 正确的术语是说“B 实现 ISomeInterface”。

但是,说我有

  interface ISomeInterface : ISomeOtherInterface   {}

现在,说“继承”仍然是错误的,但现在说“实施”是错误的。因为ISomeInterface没有实现任何东西。

那么,你怎么称呼这种关系?

有帮助吗?

解决方案

我个人说“延伸”并且我思考 C#规范在某个地方也使用了这个词(不幸的是我现在找不到它) - 但是我记得Eric Lippert说他并不热衷于它,并想改变它对于4.0。

我认为这很好,因为它表明您正在扩展原始界面指定的合同。

编辑:看过3.0规范......

该规范在第13.2节中逐步解决了这个问题。它讨论了从基接口继承的成员。它讨论了一个扩展另一个,但不是接口

编辑:在C#5规范第13.1.4节中,它使用了inherits:

  

接口可以从零个或多个接口类型继承

所以这可能是最好用的术语。

其他提示

我称之为“延伸”。

通常,我称之为过度工程。

作为权威来源,如果您需要有用的报价,我遇到了 MSDN上的信息,描述了”接口继承“以及ComboBox,Control,Listbox和TextBox的接口继承结构的实际示例:

并提到了一个明确的基本接口

  

接口可以继承零个或多个接口   称为接口的显式基接口

示例:

interface IControl
{
   void Paint();
}
interface ITextBox: IControl
{
   void SetText(string text);
}
interface IListBox: IControl
{
   void SetItems(string[] items);
}
interface IComboBox: ITextBox, IListBox {}

来源:

http://msdn.microsoft.com/ EN-US /库/ aa664578%28VS.71%29.aspx

为什么说InterfaceB“继承”是错误的?或者“衍生自”或“衍生自”了InterfaceA? "器具"这是错误的,因为InterfaceB没有提供实现。从语义上讲,派生接口与派生类非常相似。 例如,C ++根本不区分接口和类。

你的定义错了。

B:表示“B继承自A”。

当我们说“B实现InterfaceA”时,这通常意味着InterfaceA没有定义功能 - 它只是原型(或者,C ++中的PURE)。但是在C ++和大多数OOPL中,继承和实现共享相同的语法。

因此,InterfaceB:InterfaceA仍然意味着“InterfaceB继承了InterfaceA”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top