在接口中定义方法的不同方法

时间:2009-06-13 23:52:41

标签: java interface

之间有什么区别:

interface A{
    public a();
}

interface A{
    abstract a();
}

interface A{
    a();
}

3 个答案:

答案 0 :(得分:12)

来自Java Language Specification:

的第9.4节
  

正文中的每个方法声明   接口是隐含的   抽象...

     

正文中的每个方法声明   接口是隐式公开的。

答案 1 :(得分:10)

publicabstract在接口方法上是多余的,因此三者是相同的。

我个人总是使用第三个。

答案 2 :(得分:0)

我个人更喜欢明确声明我的接口方法是公开的。虽然它是多余的,但在其他情况下,没有修饰符的方法是包私有的,所以我发现它可能令人困惑,特别是在具有大量静态最终字段的接口中,在某些上下文中暗示公开而在其他上下文中包含私有,如果从IDE中钻取到方法并且看不到声明的顶部,则可能不会立即显示您正在查看接口

但我觉得抽象是多余的,因为方法decalration以分号结束。

但这些都是风格和偏好的问题。功能完全相同。