Personalmente, no creo que sea útil, excepto para los IDE que hacen la comprobación de errores en tiempo de compilación, pero esa es mi opinión. Motivo: suponga que tiene
Class A {
methodName() { System.out.println ("A"); }
}
class B extends A {
methodName() { System.out.println ("B"); }
}
En tiempo de ejecución, es probable que llame B.methodName() - que no importa a B si B.methodName() anula el mismo nombre de la clase A(). Para la clase B, ni siquiera debería importar si la superclase (A) implementa methodName(). Lo que quiero decir es que la herencia es una calle de sentido único: no se puede deshacer algo usando una @override, todo lo que el compilador puede verificar es si hay un método con la misma firma en la superclase, que no se usará de todos modos. .
Para las otras respuestas, si alguien edita A.java para eliminar o renombrar methodName() o cambiar su firma, puede llamar a B.methodName() sin ningún problema, pero solo si no usa esa @override . Creo que esto también es por qué es no una parte del lenguaje Java.
Obtiene una comprobación de tiempo de compilación mucho más agradable, por ejemplo. Duplicado: http://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why – birryree
Estaba tan revivido cuando cambié de Delphi a Java. No necesitaba 'virtual'. por más tiempo ... @Override es un paso atrás. Hoy en día, la mayoría de los IDE han sobrescrito automáticamente, por lo que rara vez se escribe a mano, contribuye al estilo java suave, aunque :) – bestsss
@bestsss - nadie te obliga a utilizar @Override. Pero no te atrevas a despojarlo de ningún código que >> I << escriba. –