Answers:
根据Java语言规范,abstract
用于接口的关键字已过时,不应再使用。(第9.1.1.1节)
也就是说,由于Java具有向后兼容性的倾向,因此我真的怀疑,是否abstract
存在该关键字是否会有所不同。
abstract
在接口本身的声明上而不是在其成员上描述关键字。@Will在下面的答案是正确的,并且还包含有效的链接源。
eclipse中的“那个的好处”(在接口方法声明上添加摘要)将是与jdk1.3中的jdt eclipse编译器的旧兼容性问题
从1.4开始,jdk库不再包含默认的抽象方法(在实现接口的抽象类上)。
这愚弄了Eclipse 1.3编译器的诊断,因为它们的实现依赖于它们的存在。
请注意,Javac 1.3将完全拒绝针对1.4库执行操作(使用-bootclasspath选项)。
由于Eclipse编译器可能处于1.4遵从级别(请参阅参考资料Workbench>Preferences>Java>Compiler>JDK Compliance
),或者如果使用1.3遵从模式,则至少使用1.3类库,因此在当前的大多数Eclipse项目中都不需要“抽象”。
在Java SE 7 JLS(Java语言规范)中:“允许,但出于风格考虑,不建议为接口中声明的方法冗余地指定public和/或abstract修饰符。”
对于Java SE 5.0:“为了与Java平台的较早版本兼容,出于风格考虑,允许但不建议为接口中声明的方法冗余地指定abstract修饰符。”
根据JLS,接口中的方法默认情况下是抽象的,因此关键字是多余的。知道这一点,我将永远不会使用它来“避免呈现混乱”。