“Constructor cannot be applied to given types” when constructors have inheritance

前端 未结 4 757
一生所求
一生所求 2020-12-19 04:07

This is my base class:

abstract public class CPU extends GameObject {
    protected float shiftX;
    protected float shiftY;

    public CPU(float x, float          


        
4条回答
  •  有刺的猬
    2020-12-19 04:31

    The final object needs to in initialize the super class using one of its constructors. If there is a default (no-parameter) constructor then the compiler calls it implicitly, otherwise the subclass constructor needs to call it using super as the first line of its constructor.

    In your case, that would be:

    public Beam(float x, float y, float shiftX, float shiftY, int beamMode) { 
      super(x, y)
    

    And remove the assignments to this.x and this.y later.

    Also, avoid making them protected, makes it difficult to debug. Instead add getters and if absolutely necessary setters

提交回复
热议问题