为什么不能保护java主类?

我可以使用Access说明符“public”或default创建Main类。

但为什么我不能创建受保护。 默认情况下,为什么不保护。

上市:

public class MainClass { public static void main(String[] args) { } } 

默认:

 class MainClass { public static void main(String[] args) { } } 

保护:

 protected class MainClass { public static void main(String[] args) { } } 

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

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

请注意,这与main无关……它适用于任何顶级类。 它对于受保护的嵌套类型有效:

 public class Foo { protected static class Bar{} } 

这允许Foo子类访问Bar

受保护或私人阶级没有意义 – 作为顶级阶级,而不是内部阶级。 这样的课程不可用。 受保护的意思是,孩子们可以看到class级中的元素。 但如果全class都是包装怎么办呢。 在这种情况下,任何其他类甚至可以看到这样的类(即使在相同的包中),直到它扩展这样的类。 这很奇怪,这就是它被禁止的原因。

您是否通过将封闭类视为受保护来破坏主方法的可见性?
据我所知,要获得一个主要方法,您需要确保两件事:

  1. 附上课程是公开的。 (我认为也可以默认)
  2. 封闭类和父文件具有相同的名称。

希望这可以帮助 :)