扩展已经由其父级扩展的接口AGAIN有什么好处?

Jen*_*nix 2 java android interface

说,我有以下代码:

interface IAAA {
    void aaa();
}

interface IBBB extends IAAA {
    void bbb();
}

class MyClass implements IAAA, IBBB {
    public void bbb() { }
    public void aaa() { }
}
Run Code Online (Sandbox Code Playgroud)

是否有实现的任何好处IAAAMyClass?正如你所看到的,IAAA已经被扩展IBBB,并MyClass正在实施两个IAAAIBBB.似乎IAAA从中移除MyClass不会影响任何事情.

我之所以问这个愚蠢的问题,是因为我在Android开源项目中经常看到这种模式,有时甚至在标准中也是Java API如此ArrayList.

我想谈的一个例子是SpannableStringBuilder.

Spanned接口扩展CharSequence接口.

Spannable接口扩展Spanned接口.

Editable接口扩展CharSequenceSpannable接口.

SpannableStringBuilder类实现CharSequence,Spannable,Editable界面恢复.

我真的不明白.这样做有什么意义?何必?

Gab*_*han 5

没有技术原因.它可以使维护更容易 - 如果Bar扩展了Foo并且你想要找到实现Foo的所有类,你只需要寻找Foo而不是Foo和Bar.