我正在尝试编译Game的子类DramaticGame
的程序。子类包含以下内容:
public class DramaticGame extends Game
{
public DramaticGame(String machineName, int machineSize, String rackName, int rackSize)
{
super.makeMachine(machineName, machineSize);
super.makeRack(rackName, rackSize);
}
}
DramaticGame.java:5:找不到符号
symbol:构造函数Game()
位置:类游戏
{
^
它说它在游戏中找不到“{”符号,但我不知道如何解决这个问题。
public Game(String paramString1, int paramInt1, String paramString2, int paramInt2)
{
this.machine = makeMachine(paramString1, paramInt1);
this.rack = makeRack(paramString2, paramInt2);
}
答案 0 :(得分:1)
您的超类缺少默认构造函数,如果不这样做,则会隐式调用 问题
super(eventual params);
作为构造函数中的第一个语句。
答案 1 :(得分:0)
不,它找不到的是默认构造函数。
如果您不提供任何构造函数,编译器将创建一个无参数的默认构造函数。
但是当你写一个你自己的时候。
我建议你写一个用默认参数调用你已经写过的那个:
public class DramaticGame extends Game
{
public DramaticGame() {
this("default-machine-name", 1024, "default-rack-name", 10);
}
public DramaticGame(String machineName, int machineSize, String rackName, int rackSize)
{
super.makeMachine(machineName, machineSize);
super.makeRack(rackName, rackSize);
}
}
我也想知道你的游戏构造函数是否应该采用机架名称和大小。这些是Game类成员的事实告诉我,他们应该在Game构造函数中设置。