簡體   English   中英

是否有一個標准的接口來保證void main(String [] args)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM