我目前的任务是用 Java 编辑小行星游戏的代码。主类已经完成,但是我必须完成主类控制的游戏中交互的对象的类。在游戏的API中,父类(super class)SpaceObject的构造函数是这样写的:
public SpaceObject(double xPos, double yPos, double xVel, double yVel, double radius){
setXPosition(xPos);
setYPosition(yPos);
setXVelocity(xVel);
setYVelocity(yVel);
setRadius(radius);
}
其子类 Comet 概述为:
Comet(double xPos, double yPos, double xVel, double yVel, double radius){
super(xPos, yPos, xVel, yVel, radius);
}
最后,问题子类 LargeComet 概述为:
LargeComet(double xPos, double yPos, double xVel, double yVel){
super(xPos, yPos, xVel, yVel);
}
LargeComet 的半径应为 40(该 int 的静态变量位于父类(super class) SpaceObject 中)。
我似乎收到一个错误,但参数不匹配。我不能在子类 LargeComet 的构造函数中拥有 5 个参数值,因为这样我会在使用 4 个参数引用它的主类中收到错误(并且我不应该更改那里的主类代码)。我是否忘记了关于显式调用父类(super class)构造函数的一些事情?
最佳答案
您需要使用 super() 所需的参数(其中 5 个)来调用。如果一个是静态的,则为它提供静态值而不是参数。对于父类接受 3 个参数的类,它看起来像这样。
MyClass(int arg1, int arg2)
{
super(arg1,arg2,5);
}
关于java - 子类的参数可以比它的子类少吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159912/