在FCL中考虑这个界面:
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
它告诉我们:界面IList<T>
[XXX] 3个界面:IConnection<T>
,IEnumerable<T>
和IEnumerable
。我有[XXX]的一些选择:
(1)派生自/ inherits
此选项来自C#语言规范(但不是直接),其中多次出现“多继承接口”一词。我不喜欢它的原因:使用“继承”一词,我们有:IEnumerable<T>
继承IEnumerable
,ICollection<T>
继承IEnumerable<T>
和IEnumerable
,然后IList<T>
继承了所有这三个。有些事情是错的,但我不能说,感情非常糟糕。
(2)实现
这也不是一个好选择。因为没有实施,所以只是合同。
(3)别的什么?我想知道
你的想法是什么?
答案 0 :(得分:3)
我为此使用了“Extends”。可能是一个小Java-ish但它似乎适合我。具有超级接口的接口可以合理地说是“扩展”该接口,因为它必须添加一些东西(不一定或当然,但没有太多理由不这样做。除了语义原因,但是你呢'仍然在语义上扩展。
答案 1 :(得分:2)
我要说IList<T>
包含 ICollection<T>
,IEnumerable<T>
和IEnumerable
或者,我可能会说 延伸
答案 2 :(得分:0)
我说实现接口并且继承了类。这就是你问的问题吗?
如果是,这就是原因:
我不使用“inherits”的原因确实描述了两种情况,因为你没有从接口继承任何东西,例如:界面没有功能性物质 - 只是具体物体将要做的蓝图。