De los tutoriales de Java en annotations:
@Override
- la @Override
anotación informa al compilador que el elemento está destinado a reemplazar un elemento declarado en una superclase (anulando métodos se discutirá en la lección titulada "Interfaces y Herencia").
// mark method as a superclass method
// that has been overridden
@Override
int overriddenMethod() { }
Si bien no es necesario para utilizar este anotación al redefinir un método, ayuda a prevenir errores. Si un método marcado con @Override
falla al anula correctamente un método en una de sus superclases, el compilador genera un error.
Echemos un vistazo al ejemplo dado en las especificaciones del lenguaje Java, 9.6.1.4 Override. Digamos que desea reemplazar un método, equals
en ese caso, pero que escribió:
public boolean equals(Foo that) { ... }
en lugar de:
public boolean equals(Object that) { ... }
Aunque este código es legal, la anotación de la declaración equals
método con @Override
desencadenaría un error de tiempo de compilación porque de hecho no lo está anulando, lo está sobrecargando. Esto puede causar errores desagradables y el tipo de anotación Override
ayuda a detectarlos temprano.
Duplicado: http://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why –