是否有一个标准接口保证void main(String [] args)?

时间:2011-03-07 01:48:18

标签: java interface

我对java很新,并且正在寻找一个简单地保证main(args)存在的接口 - 例如适合使用“java classname arg1 ... argN”从命令行运行 - 无需执行更多操作。

更正式地说,我认为这就足够了:

public interface App {

public static void main(String[] args);

}

标准库中是否存在通常在JDK中找到的接口?

我在Nutshell书中找不到正式的“应用程序”或“应用程序”条目,谷歌搜索“java interface main”也找不到任何有用的东西。

提前致谢...

2 个答案:

答案 0 :(得分:11)

接口无法定义静态方法。没有定义主方法的接口。

答案 1 :(得分:3)

正如其他人所说,你不能拥有抽象的静态方法。我会尝试解释为什么

静态成员仅附加到一个类 - 它定义的类。它不能被继承。问题是,Java语法使它看起来就像你可以继承它一样;如果父类A具有静态方法f(),并且您编写了子类B,那么您可以调用这样的方法:B.f()。但是,您实际上是在调用A.f()。这是一个毫无意义的区别,除非你做这样的事情:

class A {
    public static String s = "a";
    public static String f() { 
        return s;
    } 
}

class B extends A {
    public static String s = "b"; 
}

此处,A.f()B.f()都会返回“a”。

所以:如果你不能继承静态方法,那么就不能覆盖它;如果你不能覆盖它,那么将它抽象化将毫无意义。