如果我有B级:A {}
我说"B级继承了 A级"或"B级来自A级".
但是,如果我改为:
class B : ISomeInterface {}
Run Code Online (Sandbox Code Playgroud)
说"B继承ISomeInterface"是错误的 - 正确的术语是"B 实现 ISomeInterface".
但是,说我有
interface ISomeInterface : ISomeOtherInterface {}
Run Code Online (Sandbox Code Playgroud)
现在,说"继承"仍然是错误的,但现在说"实现"是错误的,因为ISomeInterface没有实现任何东西.
那么,你怎么称呼这种关系?
Jon*_*eet 58
我个人说"扩展",我认为 C#规范在某个地方也使用了这个词(不幸的是我现在找不到它) - 但是我记得Eric Lippert说他并不热衷于此,并希望改变它4.0.
我认为这很好,因为它表明你正在扩展原始界面指定的合同.
编辑:看过3.0规范......
规范类似于第13.2节中的问题.它讨论了从基接口继承的成员.它讨论了一个扩展另一个类的类,但不是接口
编辑:在C#5规范的第13.1.4节中,它使用了继承:
接口可以从零个或多个接口类型继承
所以这可能是最好用的术语.
通常,我称之为过度工程.
作为一个权威的来源,如果你需要一个有用的引用,我在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 {}
Run Code Online (Sandbox Code Playgroud)
资源:
http://msdn.microsoft.com/en-us/library/aa664578%28VS.71%29.aspx