请问这个程序为何能够正常编译?
由于输入程序时的失误,使得我发现了一个问题:
程序1:
public class MainClass
{
int i=10;
public MainClass()
{
System.out.println(i);
}
public static void main(String args[])
{
new MainClass();
}
}
程序2:
public class MainSubClass extends MainClass
{
public static void main()//我漏写了String args[]
{
}
}
程序2运行的结果:
10
Press any key to continue...
程序2是如何执行的?为什么程序2能够正常通过编译,没有出现异常,并且得到和程序1同样的结果10?
如果我把程序改一下:
package MainPackage;
public class MainSubClass
{
public static void main()
{
}
}
虽然编译能通过,但是运行时出现异常:
Exception in thread "main" java.lang.NoSuchMethodError: main
Press any key to continue...
谁能给解释一下吗,谢谢了!!
[此贴子已经被作者于2006-4-3 21:25:52编辑过]