我对java很新,并且正在寻找一个简单地保证main(args)存在的接口 - 例如适合使用“java classname arg1 ... argN”从命令行运行 - 无需执行更多操作。
更正式地说,我认为这就足够了:
public interface App { public static void main(String[] args); }
标准库中是否存在通常在JDK中找到的接口?
我在Nutshell书中找不到正式的“应用程序”或“应用程序”条目,谷歌搜索“java interface main”也找不到任何有用的东西。
提前致谢...
答案 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”。
所以:如果你不能继承静态方法,那么就不能覆盖它;如果你不能覆盖它,那么将它抽象化将毫无意义。