- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
interface A {
public void doSomething();
}
interface B extends A {
public void doSomethingElse();
}
public class AClass implements A, B {
public void doSomething() {}
public void doSomethingElse() {}
}
为什么 Java 允许这样的声明?当通过实现子接口(interface) (B) 可以实现相同的目的时,实现这两个接口(interface)有什么用?
最佳答案
我认为“为什么”这个问题只能由 Java 设计人员来回答。
一个原因可能是它允许将 extends A
改造为 B
,而不会破坏任何已经碰巧实现了这两者的现有类。
使用此构造的另一个原因可能是让 AClass
的最终用户立即清楚该类同时实现了 A
和 B
。这在 Redundant implementation of List interface in ArrayList.java 中讨论
关于java - 在一个类中同时实现 super 接口(interface)和子接口(interface)(A类实现SuperInterface,SubInterface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14483909/
假设我得到了这个接口(interface) A: interface A { void doThis(); String doThat(); } 所以,我想要一些抽象类来实现 doTh
在 JLS 和 JVM 规范中,都有引用类的直接 super 接口(interface)的语言。类的直接 super 接口(interface)的概念令人困惑,因为类不能扩展接口(interface)
问题:我有两个具有相同限定路径的 java 类。 我正在运行一个 EMR 作业,为此我将所有依赖项 jar 打包在一个 jar 中并上传到 S3。 EMR 集群应该使用来自 S3 的这个 jar。但我
我有类 Assembly 实现 IAssembly。 启动应用程序时出现以下错误 Caused by: java.lang.IllegalAccessError: class cannot acce
我有一个这样的界面: public interface SuperInterface { public interface SubInterface { public void
我是一名优秀的程序员,十分优秀!