方法界面中的可见性

是否默认公开可见性模式?

接口中的所有方法默认为public

请参阅Java语言规范6.6.1

接口的所有成员都是隐式public

所有的接口方法都是public abstract ,所有的接口字段都是public static final

看到这里 。

只是在这里添加其他答案:所有的方法是公共的,但是,如果接口本身是包本地的,那么有效的所有方法也是包本地的。

因此,您可以通过将包本地接口扩展为公共接口来混合公有包和本地包方法。

 public interface P{ void iAmPublic(); } interface L extends P{ void iAmPackageLocal(); } 

这里L实际上有一个公共和一个包本地方法。 来自包外部的客户端只会看到iAmPublic() ,而来自包内部的客户端则会看到两个方法。

以同样的方式,您可以在其他类中嵌套接口,以实现更紧密的方法可见性。

是的,一个接口的所有方法都是公共的,并且不能有任何其他访问修饰符(即默认的公共访问修饰符是唯一有效的访问修饰符)

是的,接口中的所有方法都是隐式公开的和抽象的。

检查Java语言规范第9.4章