任何人都可以告诉我在java中使用主要方法作为final。为什么我们允许在java中拥有最终的主要方法?
,而这是允许在Java
public static final void main(String[] args) {
}
我没有看到任何使用使得它最终的。反正它是静态的,所以我们不能重写它。
任何人都可以告诉我在java中使用主要方法作为final。为什么我们允许在java中拥有最终的主要方法?
,而这是允许在Java
public static final void main(String[] args) {
}
我没有看到任何使用使得它最终的。反正它是静态的,所以我们不能重写它。
将final
添加到静态方法实际上可以有所作为。请看下面的代码:
class A {
public static void main(String[] args) {
System.out.println("A");
}
}
class B extends A {
public static void main(String[] args) {
System.out.println("B");
}
}
class C extends B {
}
public class Test {
public static void main(String[] args) {
C.main(args); // Will invoke B.main
}
}
添加final
到A.main
将防止意外A.main
隐藏。换句话说,将final
添加到A.main
可确保B.main
不被允许,因此C.main
将打印"A"
而不是例如"B"
。
为什么我们允许在java中有最终的主要方法?
除了上述极端状况,增加final
静态方法并没有太大的区别,所以我没有看到一个大点的添加规则不允许它。
的更多信息请访问:Behaviour of final static method
除非你使用这个'比开始您的应用程序之外的任何main'方法,但绝对没有理由使之'final'。 – 2014-09-25 15:54:39