В настоящее время мне поручено редактировать код для астероидной игры в java. Основной класс закончен, но я должен завершить классы для объектов, взаимодействующих в игре, контролируемой main. В API для игры, конструктор суперкласса 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 (статическую переменную для этого ИНТ в суперкласса SpaceObject).
Я, кажется, получаю сообщение об ошибке, но параметры не совпадают. Я не могу иметь 5 значений параметров в конструкторе подкласса LargeComet, потому что тогда я получаю ошибку в главном классе, ссылаясь на нее с 4 параметрами (и я не должен менять код основных классов там). Я что-то забыл о явном вызове конструктора суперкласса?
Попробуйте 'super (xPos, yPos, xVel, yVel, 40);'. – michaelb958
Хороший лорд, это сработало T_T Спасибо! И нижеприведенные комментарии дают мне понять, почему. Я новичок в этой вещи. Спасибо вам всем! –