类AbstractInterruptibleChannel同时实现了InterruptibleChannel和它的超级接口Channel。
后面有什么理由这样做吗?
或者这样做的好处是什么?

发布于 2017-04-27 12:00:32
你是对的,这实际上是多余的。
这样做的唯一原因是:您可能担心将来子接口会被更改-不再扩展另一个接口。
通过显式地关闭这两个接口,您可以避免这种更改(是的,该类为这两个接口指定了"implements“)。
但是,这仍然是一个相当不常见的、令人惊讶的构造,我不会使用它。
发布于 2017-04-27 12:20:40
行为是相同的。
我认为其目的是让开发人员了解接口是间接实现的,而不需要在absract类定义中输入。
AbstractInterruptibleChannel有两样东西:香奈儿(Channel)和可中断的(InterruptibleChannel)。显式地声明这两个接口会强调这一点。
对于自定义类,它可能看起来是多余和无助的,但对于源代码被浏览和阅读数百万次的jdk类,情况可能并非如此。
https://stackoverflow.com/questions/43648351
复制相似问题