类AbstractInterruptibleChannel实现InterruptibleChannel及其超级接口Channel。
这背后有什么理由吗?
或者这应该是什么优势?
答案 0 :(得分:0)
你是对的,这实际上是多余的。
这样做的唯一原因是:您可能担心子接口在未来发生变化 - 不再扩展其他接口。
通过明确地放下两个接口,你可以防止这种变化(是的,该类说"实现"对于两个接口)。
但是,这仍然是一个相当罕见的,令人惊讶的结构,我将不会使用它。
答案 1 :(得分:0)
行为是一样的。
我认为,意图是开发人员不需要输入absract类定义来了解接口是间接实现的信息。
AbstractInterruptibleChannel
是两件事:chanel(Channel
)和可中断的(InterruptibleChannel
)。声明两个接口明确强调它
对于自定义类,它看起来似乎是多余的和无助的,但对于源代码被浏览并读取数百万次的jdk类,它可能不是。