The answer is plain simple, in Java, for method overriding, you must have the exact signature of the super type. However, if you remove the @Override annotation, your method would be overloaded and your code won't break. This is a Java implementation that ensures that you mean the method implementation should override the implementation of the super type.
Method overriding works in the following way.
class Foo{
void foo(String string){
}
}
class Bar extends Foo{
@Override
void foo(String string){
super();
}
void foo(Object object){
}
}
The methods shown above are both correct and their implementation can vary.
I hope this helps you.