我有这两个类的问题:
怪物:
public abstract class Creature extends Texturable
{
public Creature(String ID)
{
this.ID = ID;
} // end Creature()
protected void setMaximumHealthPoints(int maximumHealthPoints)
{
this.maximumHealthPoints = maximumHealthPoints;
} // end setMaximumHealthPoints()
protected void setMaximumSpeed(int maximumSpeed)
{
this.maximumSpeed = maximumSpeed;
} // end setMaximumSpeed()
...
protected String ID;
protected int maximumHealthPoints;
protected int maximumSpeed;
...
} // end Creature
Run Code Online (Sandbox Code Playgroud)
人类:
public class Human extends Creature
{
public Human(String ID)
{
this.ID = ID;
setMaximumHealthPoints(100);
setMaximumSpeed(4);
} // end Human()
} // end Human
Run Code Online (Sandbox Code Playgroud)
我想做的是,正如上面的代码所说,将最大健康点设置为100,最大速度设置为4,但仅限于人类生物.:)
当我尝试编译它时,我得到以下错误:类Creature中的构造函数Creature不能应用于给定的类型.人类和生物构造函数中的参数是相同的.所以有什么问题?
我也试过这个:
人类:
public class Human extends Creature
{
protected int maximumHealthPoints = 100;
protected int maximumSpeed = 4;
} // end Human
Run Code Online (Sandbox Code Playgroud)
但没有成功.
现在我收到这个错误:"字段隐藏了另一个字段".
有什么办法可以让它正常工作吗?
提前致谢,
卢卡斯
更改Human构造函数以调用正确的基类构造函数,如下所示:
public Human(String ID)
{
super(ID);
setMaximumHealthPoints(100);
setMaximumSpeed(4);
}
Run Code Online (Sandbox Code Playgroud)
你的代码隐含地试图调用Creature不存在的无参数构造函数.