首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个类实现了两个接口,其中一个接口已经从一个公共父类扩展而来?

为什么这个类实现了两个接口,其中一个接口已经从一个公共父类扩展而来?
EN

Stack Overflow用户
提问于 2017-04-27 11:52:07
回答 2查看 68关注 0票数 1

类AbstractInterruptibleChannel同时实现了InterruptibleChannel和它的超级接口Channel。

后面有什么理由这样做吗?

或者这样做的好处是什么?

EN

回答 2

Stack Overflow用户

发布于 2017-04-27 12:00:32

你是对的,这实际上是多余的。

这样做的唯一原因是:您可能担心将来子接口会被更改-不再扩展另一个接口。

通过显式地关闭这两个接口,您可以避免这种更改(是的,该类为这两个接口指定了"implements“)。

但是,这仍然是一个相当不常见的、令人惊讶的构造,我不会使用它。

票数 0
EN

Stack Overflow用户

发布于 2017-04-27 12:20:40

行为是相同的。

我认为其目的是让开发人员了解接口是间接实现的,而不需要在absract类定义中输入。

AbstractInterruptibleChannel有两样东西:香奈儿(Channel)和可中断的(InterruptibleChannel)。显式地声明这两个接口会强调这一点。

对于自定义类,它可能看起来是多余和无助的,但对于源代码被浏览和阅读数百万次的jdk类,情况可能并非如此。

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

https://stackoverflow.com/questions/43648351

复制
相关文章

相似问题

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