[英]Is there a standard interface guaranteeing void main(String[] args)?
我對Java還是很陌生,正在尋找一個僅保證main(args)存在的接口-例如適合使用“ java classname arg1 ... argN”從命令行運行-而無需做更多事情。
更正式地說,我認為這樣就足夠了:
public interface App { public static void main(String[] args); }
在JDK中通常可以找到的標准庫中是否有這樣的接口?
我在Nutshell書籍中找不到“ Application”或“ App”的正式條目,也無法搜索“ java interface main”來使用任何有用的東西。
提前致謝...
接口不能定義靜態方法。 沒有定義主要方法的接口。
正如其他人所說,您不能有抽象的靜態方法。 我將盡力解釋原因 。
靜態成員僅附加到一個類(在該類中定義了該類)。它不能被繼承。 問題是,Java語法使它看起來像可以繼承它。 如果父類A具有靜態方法f(),並且您編寫了子類B,則可以這樣調用該方法: Bf()
。 但是,您實際上是在調用Af()
。 這是沒有意義的區別,除非您執行以下操作:
class A {
public static String s = "a";
public static String f() {
return s;
}
}
class B extends A {
public static String s = "b";
}
在這里, Af()
和Bf()
都將返回“ a”。
因此:如果您不能繼承靜態方法,則無法覆蓋它; 如果無法覆蓋它,那么將其抽象化將毫無意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.