为什么不能保护java主类?

San*_*osh 4 java

我可以创建具有Access说明符"public"或默认值的Main类.

但为什么我不能创建受保护.默认本身允许为什么不受保护.

上市:

public class MainClass {
 public static void main(String[] args) {
 }
}
Run Code Online (Sandbox Code Playgroud)

默认:

class MainClass {
 public static void main(String[] args) {
 }
}
Run Code Online (Sandbox Code Playgroud)

保护:

protected class MainClass {
 public static void main(String[] args) {
 }
}
Run Code Online (Sandbox Code Playgroud)

它显示错误:类MainClass的非法修饰符; 只允许public,abstract和final MainClass.java SCJP/src第1行Java问题

Jon*_*eet 15

protected涉及向成员提供包含类型访问权限的子类.这里没有包含类型,那是什么意思?

请注意,这与此无关main......它适用于任何顶级类.它有效的被保护,虽然嵌套类型:

public class Foo {
    protected static class Bar{}
}
Run Code Online (Sandbox Code Playgroud)

这允许子类Foo访问Bar.