为什么不能保护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都是包装怎么办呢。 在这种情况下,任何其他类甚至可以看到这样的类(即使在相同的包中),直到它扩展这样的类。 这很奇怪,这就是它被禁止的原因。
您是否通过将封闭类视为受保护来破坏主方法的可见性?
据我所知,要获得一个主要方法,您需要确保两件事:
- 附上课程是公开的。 (我认为也可以默认)
- 封闭类和父文件具有相同的名称。
希望这可以帮助 :)