ank*_*kit 8 java static program-entry-point final
任何人都可以告诉我在java中使用main方法作为final.
虽然这在java中是允许的
public static final void main(String[] args) {
}
Run Code Online (Sandbox Code Playgroud)
我没有看到任何使用它最终的用途.无论如何它是静态的,所以我们不能覆盖它.
aio*_*obe 12
添加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
}
}
Run Code Online (Sandbox Code Playgroud)
添加final到A.main将防止意外隐藏A.main.换句话说,添加final到不允许的A.main保证B.main,C.main因此打印"A"而不是例如"B".
为什么我们允许在java中使用最终的main方法?
除了上面的角落情况之外,添加final静态方法没有太大区别,所以我没有看到添加禁止它的规则的重点.
更多信息:最终静态方法的行为
| 归档时间: |
|
| 查看次数: |
5674 次 |
| 最近记录: |