方法界面中的可见性

时间:2011-03-24 11:35:05

标签: java

接口中的所有方法是否默认具有公共可见性模式?

5 个答案:

答案 0 :(得分:75)

界面中的所有方法都默认为public

请参阅Java Language Specification 6.6.1说明哪些

  

接口的所有成员都是   隐含地public

答案 1 :(得分:14)

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

请参阅here

答案 2 :(得分:10)

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

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

public interface P{
  void iAmPublic();
}

interface L extends P{
  void iAmPackageLocal();
}

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

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

答案 3 :(得分:3)

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

答案 4 :(得分:3)

是的,界面中的所有方法都是隐式公共和抽象的。

检查Java language specification第9.4章