6
我看到这样的东西有很多的接口:重新实现另一个接口已经继承
interface A { ... }
interface B : A { ... }
class C : B, A { ...}
为什么你会指定是c实现接口A,B时已经继承了阿? 它会产生任何语义差异还是只是一种风格问题?
(这样的例子很多是List<T>
实施IList<T>
和ICollection<T>
,同时也IList<T>
从ICollection<T>
派生)。
更新:感谢确认我的猜测,它没有任何语义差别。
我想出了一个相关的情况下它不会有所作为明确命名的接口已在继承树:
如果B
是类,C
那只(重新)如果在':
'之后明确指定A
,则实现接口成员A
。
[编辑]我改变了这个问题的措辞,以避免与显式实现的接口成员混淆,这些接口成员将成员的使用限制在将对象转换为接口的情况下。
我认为这是更好的可读性..不必工作你的脑细胞通过该接口继承层次。 – Gishu 2008-11-01 19:16:33