为什么Java里面的接口的访问控制修饰符不能是protected呢?

为什么Java里面的接口的访问控制修饰符不能是protected呢?默认却可以。难道不是默认的访问范围小于protected吗?
我指的是接口里面的成员变量。

接口只包含常量和抽象方法。里面的成员变量全部(注意:是全部)都是public final static的,由于这个原因,修饰符忽略不写。
如: int i = 1; 在接口里其实等价为 public final static int i = 1;
不可再加或修改为其他修饰符。

(另外见接口里的抽象方法,同理也是默认省略了public abstract)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-09
在软件产品中,同一个接口可能被数千个项目调用,如果不适用public,即使把接口打成jar包了,别人也无法调用