首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 9中接口方法的默认访问修饰符?

Java 9中接口方法的默认访问修饰符?
EN

Stack Overflow用户
提问于 2017-08-08 17:06:27
回答 2查看 6K关注 0票数 6

Java9允许我们在接口中使用private方法,这意味着不显式标记public方法不再是多余的。

不过,现在是否必须这样做呢?我希望规范仍然假定public abstract是方法的默认修饰符,以保持与早期源代码的向后兼容性?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-08 19:04:02

Java 9语言规范在第9.4节中说:

接口主体中的方法可以声明为publicprivate (§6.6)。如果没有提供访问修饰符,则该方法是隐式public。允许为接口中的方法声明指定冗余的public修饰符,但从风格上讲,这是不可取的。

不幸的是,我找不到一个不会导致一份PDF文件,用于区分新旧JLS的链接。

票数 12
EN

Stack Overflow用户

发布于 2021-03-24 12:11:41

我学到的是:

接口中的所有成员都是隐式公共的,不能使用任何其他访问修饰符声明,除非在下面指定:

  • 字段&所有变量都是公开的静态最终隐式
  • 使用“默认”修饰符声明的方法签名、默认方法(允许在Java 8中使用)。
  • 静态方法( Java 8允许使用)
  • 私有方法(在Java 9中允许)静态和非静态的具体方法都可以是私有的。
  • 嵌套类型
  • 方法体只存在于默认、私有和静态方法中。

资料来源:蒂姆·布萨尔卡的学习编程学院。

还有一个非常清晰但有点长的解释:https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45574205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档