我已经为接口重构了一些方法,并且在接口声明中保留了abstract
修饰符。这样的事情在我的代码中:
public interface TestAbstractMethod {
public abstract void doSomething();
}
我现在意外地注意到它,我真的很惊讶声明没有被标记为无效,它实际上是编译和工作。
接口中是否允许使用abstract
修饰符?这会以任何方式改变界面的行为吗?
答案 0 :(得分:2)
是的,这是允许的,但在Java语言规范中不鼓励使用它,§9.4:
接口主体中的每个方法声明都是隐式抽象的,因此它的主体总是用分号表示,而不是块。
允许但不鼓励作为样式,为接口中声明的方法冗余地指定公共和/或抽象修饰符。