以前到还真没有想过这么写main方法呢!也不清楚你这样写的原因!不过既然是一个问题嘛:
嘿嘿,我运行这个程序没有任何问题啊!
如果删除所有的注释:
class Game{
private String s = new String("Game");
public void append(String a){ s += a;}
public void start() { append(" Start()");}
public void end() { append(" End()");}
public void print() { System.out.println(s);}
public static void main(String[] args){
Game a = new Game();
a.start();
a.end();
a.print();
}
} public class Chess extends Game{
public void start(){
append(" chess Start()");
super.start();
}
public static void main(String[] args){
Chess hgame = new Chess();
hgame.start();
hgame.end();
hgame.print(); Game.main(args);
Game newg = new Game();
newg.start();
newg.start();
newg.print();
}
}
结果是正常的啊
打印的结果是三行啊:
Game chess Start() Start() End()
Game Start() end()
Game Start() Start()
这没有什么问题啊!
嘿嘿,我运行这个程序没有任何问题啊!
如果删除所有的注释:
class Game{
private String s = new String("Game");
public void append(String a){ s += a;}
public void start() { append(" Start()");}
public void end() { append(" End()");}
public void print() { System.out.println(s);}
public static void main(String[] args){
Game a = new Game();
a.start();
a.end();
a.print();
}
} public class Chess extends Game{
public void start(){
append(" chess Start()");
super.start();
}
public static void main(String[] args){
Chess hgame = new Chess();
hgame.start();
hgame.end();
hgame.print(); Game.main(args);
Game newg = new Game();
newg.start();
newg.start();
newg.print();
}
}
结果是正常的啊
打印的结果是三行啊:
Game chess Start() Start() End()
Game Start() end()
Game Start() Start()
这没有什么问题啊!
解决方案 »
- 用new关键字实力化一个对象时 构造方法报错 那这个对象实力化没有??
- eclipse 与数据库连接问题
- "Exception in thread "main" java.lang.NoClassDefFoundError: helloworls"这是什么意思
- 请问applet如何向servlet传对象
- 这个小程序为何不能实现预期功能?
- 一个简单的问题:如何配置jdk环境变量
- *****关于继承后函数覆写的问题******
- 请问:怎样删除文件中的一行?
- 第一次进入,请帮忙!
- 为什么在classpath中设置的 .zip无效?
- 今天在网上看到好多招聘java程序员的,我想学点java请问大家有没有其它好学java的网址?
- 为什么用JDBC、ODBC桥连接数据库时,总是说“No suitable driver"呢???
显然你这里的切入口就是Chess里的main方法。
但这并不是说你只能有一个main方法,可以有其它的main方法。
其它的static main方法将被看作一般的类方法。
像你这个程序是可以的,只是你在Chess类里把父类的main方法hide了(因为static 方法是不能被override的)。
这个程序的运行结果如楼上所说。
另外,如果你想要把Game里的main作为程序切入点,只需把文件名改为Game.java,并把Chess前面的public移到Game前就行。再补充一点,如果你没在Chess里定义main方法,那么系统将自动继承调用Game里的main方法。
倒是忘了static的问题55555
还是概念很不熟啊:(
给分了