为什么我们被允许在java中有一个最终的main方法



有人能告诉我在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添加到静态方法中并没有太大区别,所以我认为添加不允许它的规则没有什么大意义

此处提供的更多信息:最终静态方法的行为

相关内容

  • 没有找到相关文章