正在试验接口继承并发现了这个:
interface String{}
interface Object{}
interface Exception{}
interface Integer extends String, Object, Exception{}
public class Test implements Integer{
public static void main(String[] args) {
System.out.println("Test");
}
}
它正在编译,但在运行时抛出"main" java.lang.NoSuchMethodError: main
?
答案 0 :(得分:7)
那是因为主方法签名应该是:
public static void main(java.lang.String[] args) {
如果你写
public static void main(String[] args) {
它获取了一个String接口数组,因此签名是不同的
答案 1 :(得分:3)
如果您推荐不可取的String
界面,Test
课程会尝试扩展java.lang.String
,这是最后一堂课。你无法扩展它。并且要求像Integer这样的接口扩展类而不是另一个接口应该会产生编译错误。
我认为这个实验没有任何教育意义。它们都不应该进入真正的代码。