java—再次扩展已经由父接口扩展的接口有什么好处?

r8uurelv  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(261)

我有以下代码:

interface IAAA {
    void aaa();
}

interface IBBB extends IAAA {
    void bbb();
}

class MyClass implements IAAA, IBBB {
    public void bbb() { }
    public void aaa() { }
}

实施有什么好处吗 IAAAMyClass ? 如你所见, IAAA 已由扩展 IBBB 以及 MyClass 正在实现这两个目标 IAAA 以及 IBBB . 好像要搬走了 IAAAMyClass 不会影响任何事情。
我问这个愚蠢的问题的原因是,我经常看到这种模式 Android 开源项目,有时甚至在标准中
Java API 例如 ArrayList .
我想说的一个例子是 SpannableStringBuilder . Spanned 接口扩展 CharSequence 接口。 Spannable 接口扩展 Spanned 接口。 Editable 接口扩展了 CharSequence 以及 Spannable 接口。 SpannableStringBuilder 类实现 CharSequence , Spannable , Editable 再次接口。
我真的不明白。这样做有什么意义?为什么要麻烦?

2wnc66cl

2wnc66cl1#

没有技术上的原因。这可能会使维护变得更容易—如果bar扩展了foo,并且希望找到实现foo的所有类,那么只需查找foo,而不必查找foo和bar。

ldioqlga

ldioqlga2#

文件,强调了 MyClass 必须实施 IAAA ,而不强制代码的(人类)读者查看 IBBB 知道这一点。

相关问题