有人能告诉我在java中将main方法作为final的用法吗。
而这在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中有一个最终的main方法
除了上述情况之外,将final
添加到静态方法中并没有太大区别,所以我认为添加不允许它的规则没有什么大意义
此处提供的更多信息:最终静态方法的行为