gpt4 book ai didi

java - 为什么我们允许在 java 中有一个 final main 方法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:00 24 4
gpt4 key购买 nike

谁能告诉我在 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"

Why are we allowed to have a final main method in java?

除了上述极端情况,将 final 添加到静态方法并没有太大区别,因此我认为添加禁止它的规则没有什么大不了的。

此处提供更多信息:Behaviour of final static method

关于java - 为什么我们允许在 java 中有一个 final main 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26042833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com