作者:单身王子550130 | 来源:互联网 | 2022-11-26 11:08
说,我有以下代码:
interface IAAA {
void aaa();
}
interface IBBB extends IAAA {
void bbb();
}
class MyClass implements IAAA, IBBB {
public void bbb() { }
public void aaa() { }
}
是否有实现的任何好处IAAA
的MyClass
?正如你所看到的,IAAA
已经被扩展IBBB
,并MyClass
正在实施两个IAAA
和IBBB
.似乎IAAA
从中移除MyClass
不会影响任何事情.
我之所以问这个愚蠢的问题,是因为我在Android
开源项目中经常看到这种模式,有时甚至在标准中也是Java
API
如此ArrayList
.
我想谈的一个例子是SpannableStringBuilder
.
Spanned
接口扩展CharSequence
接口.
Spannable
接口扩展Spanned
接口.
Editable
接口扩展CharSequence
和Spannable
接口.
SpannableStringBuilder
类实现CharSequence
,Spannable
,Editable
界面恢复.
我真的不明白.这样做有什么意义?何必?
1> Gabe Sechan..:
没有技术原因.它可以使维护更容易 - 如果Bar扩展了Foo并且你想要找到实现Foo的所有类,你只需要寻找Foo而不是Foo和Bar.