构造函数 - 找不到符号

时间:2012-02-18 16:14:15

标签: java class inheritance constructor

我正在尝试编译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);
}

2 个答案:

答案 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构造函数中设置。