在java继承类中必须调用父类的构造函数吗?

这样一段程序:public class Game {
Game(int i){
System.out.println("It's a game.");
}
}public class BoardGame extends Game{

BoardGame(int i,int k){
super(1);//如果将此处的super(1);删掉系统就会报错
System.out.println("It's a boardgame.");
}
public static void main(String[] args) {
}}这段super(1);必须调用吗?

没有super(1)这句的话,java会调用父类的默认构造函数,所以只要你给Game类加上个默认构造函数就不会报错了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-20
经过我测试,我修改了一下下把2个类分别建立类文件,把main函数放在一个类下。然后就是:BoardGame类:package Test;public class BoardGame extends Game{
public BoardGame(int i,int k){
super(1);//如果将此处的super(1);删掉系统就会报错
System.out.println("It's a boardgame.");
}
}Game类:package Test;public class Game {
public Game(int i){
System.out.println("It's a game.");
}
}Test类:package Test;public class Test { public static void main(String[] args) {
BoardGame a=new BoardGame(0, 0);
}
}可以正常运行
第2个回答  2018-01-20
是的
相似回答