I came to situation :
public interface Intr { public void m1(); } public abstract class Abs { public void m1() { System.out.println(\"Abs.m1
@Override ensures you override the method with no difference Interface or abstract superclass. So no error with override.
@Override
On the other hand Interface method is also implemented in the superclass which is enough for Interface contracts.