Java 9 允许我们在接口中拥有
private
方法,这意味着不显式标记 public
方法不再是多余的。
但是,现在强制这样做吗?我希望规范仍然假设
public abstract
作为方法的默认修饰符,以保持与早期源代码的向后兼容性?
Java 9 语言规范在 §9.4::
中有说明接口主体中的方法可以声明为
或public
(第 6.6 节)。如果没有给出访问修饰符,则该方法是隐式的private
。允许为接口中的方法声明多余地指定public
修饰符,但出于风格原因,不鼓励这样做。public
不幸的是,我找不到不指向 PDF 的链接,比较新旧 JLS。
我所学到的:
接口中的所有成员都是隐式公共的并且不能被声明 与任何其他访问修饰符一起使用,除非下面指定:
来源:Tim Buschalka 的学习编程学院
还有一个非常清晰但有点长的解释:https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html
Java 9v 及以上: 内部接口
示例:
界面示例{
私有静态 void m1(){}
私有 void m2(){}
私有 void m3(){}
}