【发布时间】:2018-06-17 22:08:54
【问题描述】:
为什么下面的代码在Java 8+eclipse中编译运行成功?
package package1;
interface A
{
static void main(String[] args) {
System.out.println("Hi");
}
}
如果将 A 更改为类,则运行时要求它是公共类,但对于接口则不然。这似乎不一致。
编辑:我在发布问题时所做的上述陈述是错误。 (我一定是累了,误读了错误)。 Java 不要求托管 main 的类是公共的,只要求方法。 但是,托管类型 main 不必是 public,而 main 方法必须是 public,这有点不一致。
【问题讨论】:
-
所有接口成员默认为
public。 -
该类不必是公开的。该方法可以。
-
接口隐含
public和static -
你的问题是类型还是方法?
-
接口不是隐式公开的。他们的方法是。原来运行时不需要公开类型,只需要 main 方法。
标签: java interface java-8 main static-methods