在类中实现超级和子接口(类A实现SuperInterface,SubInterface)

c.P*_*.u1 14 java interface

interface A {

    public void doSomething();
}

interface B extends A {

    public void doSomethingElse();
}

public class AClass implements A, B {

    public void doSomething() {}

    public void doSomethingElse() {}

}
Run Code Online (Sandbox Code Playgroud)

为什么Java允许这样的声明?通过实现SubInterface(B)可以实现同样的事情,实现两个接口的用途是什么?

NPE*_*NPE 6

我认为“为什么”的问题只能由 Java 设计者来回答。

一个原因可能是它允许extends AB不破坏任何已经碰巧实现了两者的现有类的情况下进行改造。

使用此构造的另一个原因可能是让最终用户立即清楚AClass该类同时实现AB。这在 ArrayList.java 中 List 接口的冗余实现中讨论