如果不为接口指定访问修饰符,该接口是否将具有默认访问权限
我正在读 Kathy Sierra 和 Bert Bates 写的 SCJP,它在第 12 页上写着。 21 那个 “如果您希望接口具有公共访问权限而不是默认访问权限,则需要 public 修饰符”。这是真的吗?如果是,那么只有当接口位于实现类的同一包中时才能访问接口方法(始终是公共的)...?因为这是默认访问修饰符的含义...我对此有点困惑。
I'm reading SCJP by Kathy Sierra and Bert Bates and it says on pg. 21 that
"The public modifier is required if you want the interface to have public rather than default access". Is this true? If yes, then the interface methods (which are always public) only accessible if the interface is in the same package of the implementing class...? Since that is the meaning of the default access modifier...I'm a bit confused on this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,确实如此。如果未指定访问修饰符,Java 类型/字段/方法(在类中)具有包级访问权限。接口类型中定义的成员默认是公共的。
阅读教程 - 控制对类成员的访问。
Yes that is true. Java types/fields/methods (in class) have package-level access if access modifier is not specified. Members defined in inteface type are public by-default.
Read tutorial - Controlling Access to Members of a Class.
这里的
接口
本身是包保护
,但默认情况下方法始终是public
这里的
接口
是public
以及可以声明的方法
public void bar();
或void bar();
它们的含义相同,就我个人而言,我总是把public
因为显式总是比隐式Here the
interface
itself ispackage protected
but the methods are alwayspublic
by defaultHere the
interface
ispublic
as well as the methodsyou can declare
public void bar();
orvoid bar();
they mean the same thing, personally, I always put thepublic
because explicit is always better than implicit