任何人都可以告訴我在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