Java 再次扩展已由其父接口扩展的接口有什么好处?
比如,我有以下代码:Java 再次扩展已由其父接口扩展的接口有什么好处?,java,android,interface,Java,Android,Interface,比如,我有以下代码: interface IAAA { void aaa(); } interface IBBB extends IAAA { void bbb(); } class MyClass implements IAAA, IBBB { public void bbb() { } public void aaa() { } } 在MyClass中实现IAAA有什么好处吗? 如您所见,IAAA已经被IBBB扩展,MyClass正在实现IAAA和IBB
interface IAAA {
void aaa();
}
interface IBBB extends IAAA {
void bbb();
}
class MyClass implements IAAA, IBBB {
public void bbb() { }
public void aaa() { }
}
在MyClass
中实现IAAA
有什么好处吗?
如您所见,IAAA
已经被IBBB
扩展,MyClass
正在实现IAAA
和IBBB
。从MyClass
中删除IAAA
似乎不会影响任何事情
我问这个愚蠢问题的原因是,
我经常在Android开源项目中看到这种模式,有时甚至在标准的JavaAPI中,比如ArrayList
我想讲的一个例子是SpannableStringBuilder
span
接口扩展了CharSequence
接口
Spannable
接口扩展了span
接口
Editable
接口扩展了CharSequence
和Spannable
接口
SpannableStringBuilder
类再次实现CharSequence
,Spannable
,可编辑
界面
我真的不明白。这样做有什么意义?为什么这么麻烦?没有技术上的原因。这可能会使维护变得更容易一些-如果Bar扩展了Foo,并且您想要找到实现Foo的所有类,那么您只需查找Foo,而不必查找Foo和Bar。文档,强调了一个事实,即MyClass
必须实现IAAA
,而不必强制执行(人工)阅读代码的读者可以查看IBBB
了解这一点。是的,就我个人而言,我几乎总是阅读API文档,但不是每个人都这样做,有时也没有可靠的文档,所以你所说的是有道理的。安卓是一个大团队。我打赌android团队中不是每个人都这么做。团队中并非每个人都是专家。