首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接口继承和子接口

接口继承和子接口
EN

Stack Overflow用户
提问于 2009-11-09 15:23:10
回答 2查看 1.9K关注 0票数 1

接口IA :接口IB { ... }

因此,IB是IA的父接口,IA是IB的_____。在空白处应该填些什么?子接口?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-09 15:32:00

.NET接口之间没有继承关系。这一点很明显,如果你使用反射- typeof(IB).BaseType将是null,而不是IB

就我个人而言,我更喜欢把接口看作是契约。在这种情况下,接口的“继承”实际上只是加强了契约-所以我想说“契约IB暗示了IA”。Eric Lippert seems to share这个观点:

他认为扩展是关于实现的重用,而指定一个“基础”接口意味着“任何满足这个约定的对象也必须满足这个另一个接口”。

或者,"IA扩展IB“听起来是可以理解的,虽然在技术上是正确的(如果我们谈论的是扩展合同),尽管可能有一些误导,因为我们是在”扩展“接口中收紧合同,而不是放松它。

另一种方法是采用C#语言规范所使用的语言。这篇文章有一个标题为“基础接口”的章节,以下面的句子开头:

接口可以从零个或多个接口类型继承,这些接口类型称为接口的显式基础接口

现在你就知道了。尽管应该注意,这是针对C# 3.0的;该规范的过去版本实际上使用“扩展”而不是“继承”来描述相同的东西,因此仍然存在一些混淆的可能性。

票数 4
EN

Stack Overflow用户

发布于 2009-11-09 15:33:59

据说IA是IB的子接口,IA IB的扩展。

因此,IB是IA的superinterface

所有基于这些接口的类都实现了它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1699560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档