是抽象的必须与否?

Hex*_*Sun 1 java interface

如您所知,在java接口中,所有方法都必须定义为抽象.但是当我将方法定义为不键入时abstract,编译器说它没关系.我知道抽象方法不能有一个体.接口中的某个方法是否必须具有名称abstract?:我的意思是,有什么区别:

public interface blabla {

    public void aMethod();


    //or

    public abstract void aMethod();

}
Run Code Online (Sandbox Code Playgroud)

aio*_*obe 7

不,将接口方法标记为abstract没有意义且永远不需要.

所有接口方法都是隐式的abstract(而且public太顺便说一句).

来自JLS:

接口主体中的每个方法声明都是隐式抽象的,因此它的主体始终用分号表示,而不是块.

接口主体中的每个方法声明都是隐式公开的.

为了与旧版本的Java平台兼容,允许但不鼓励,但作为一种风格,不要为接口中声明的方法冗余地指定抽象修饰符.

作为一种风格问题,允许冗余地指定接口方法的公共修饰符.


相关问题(+回答,其中一个语句的历史引用说明abstract曾经是接口方法所必需的):