无障碍
缺少访问修饰符的接口的所有成员都是隐式公开的
接口的所有成员都是隐式公共的.
当我尝试以下代码时:
public interface Test {
protected int i = 10;
}
Run Code Online (Sandbox Code Playgroud)
编译,我得到了
Test.java:3: error: modifier protected not allowed here
protected int i = 10;
^
Java版本: Java(TM) SE Runtime Environment (build 1.8.0-b129)
但在上面的Interface成员声明我不缺乏访问修饰符,那么为什么我收到此错误.
你引用的是关于确定名称可访问性的JLS部分
缺少访问修饰符的接口的所有成员都是隐式公开的
你真正需要寻找的是在部分接口字段声明其中规定
ConstantDeclaration:
{ConstantModifier} UnannType VariableDeclaratorList ;
ConstantModifier:
Annotation public
static final
Run Code Online (Sandbox Code Playgroud)
和
在接口的身体的每一个字段声明是含蓄
public,static和final.允许为这些字段冗余地指定任何或所有这些修饰符.
所以这些是你可以使用的修饰符.上面引用的部分是指当您不使用任何访问修饰符时,在这种情况下它将是隐式的public.
| 归档时间: |
|
| 查看次数: |
1369 次 |
| 最近记录: |