如果您没有为接口指定访问修饰符,那么该接口将具有默认访问权限

时间:2012-01-11 01:31:35

标签: java interface methods abstract scjp

我正在阅读Kathy Sierra和Bert Bates的SCJP,并在pg上说。那个 “如果您希望接口具有公共访问权限而非默认访问权限,则需要使用公共修饰符”。这是真的?如果是,那么接口方法(总是公共的)只有在接口位于实现类的同一个包中时才可访问...?因为这是默认访问修饰符的含义...我对此有点困惑。

2 个答案:

答案 0 :(得分:2)

  

如果你没有为a指定访问修饰符,那是真的吗?   接口,该接口将具有默认访问权限?

是的,这是真的。如果未指定访问修饰符,则Java类型/字段/方法(在类中)具有包级访问权限。以接口类型定义的成员默认是公共的。

阅读教程 - Controlling Access to Members of a Class

答案 1 :(得分:1)

此处interface本身为package protected,但默认情况下方法始终为public

interface Foo
{
    void bar(); // this is always public and nothing else
}

此处interfacepublic以及方法

public interface Foo
{
    void bar(); // this is always public and nothing else
}

你可以声明public void bar();void bar();他们的意思相同,就个人而言,我总是把public放在一边,因为显式总是优于隐式