Getting does not override error even though i did override everything that was abstract
<p>So i just made myself one abstract class and two subclasses for my state pattern. But for some bloody reason i cannot run the program because its giving me this error:</p>

<p>java.lang.RuntimeException: Uncompilable source code - model.cannon.SingleShotState is not abstract and does not override abstract method shoot(model.cannon.Cannon) in model.cannon.CannonState
    at model.cannon.CannonState.(CannonState.java:14)</p>

<p>The problem is, i am overriding the method which it says i do not. Heres my implementation:</p>

<pre><code>public abstract class CannonState {
    public abstract Missile[] shoot(Cannon cannon);
}

public class SingleShotState extends CannonState{

    public SingleShotState(){
    }

    @Override
    public Missile[] shoot(Cannon cannon) {
        float x = 1;
        float y = (float) Math.tan(Math.toRadians((double)cannon.getAngle()));

        Random rand = new Random();
        if(rand.nextFloat() &lt; 0.5f){
            cannon.setState(new ShotGunState());
        }

        return new Missile[] {
            new Missile(cannon.getX(),cannon.getY(),1*x*cannon.getForce(),-1*y*cannon.getForce())
        };
    }
}
</code></pre>

<p>IDE shows me no erros (i am using netbeans 8.2). What could possibly be the problem?</p>