Suponga que tiene:
public class Foo
{
public void bar(String x, String y) {}
}
public class Foo2 extends Foo
{
public void bar(String x, Object y) {}
}
Usted realmente significaba Foo2.bar
para anular Foo.bar
, pero debido a un error en la firma, no lo hace. Si usa @Override
, puede obtener el compilador para detectar el error. Es también indica a leyendo el código que esto está anulando un método existente o implementando una interfaz, informándoles sobre el comportamiento actual y el posible impacto de renombrar el método.
Además, el compilador puede darle una advertencia si un método, se sustituye un método sin especificando @Override
, lo que significa que puede detectar si alguien ha añadido un método con la misma firma a una superclase sin que sea consciente de ello - no puede querer para anular el nuevo método, ya que su método existente puede tener una semántica diferente. Mientras que @Override
no proporciona una forma de "anular" el método, al menos resalta el problema potencial.
Aquí está el debate sobre el mismo tema [¿Cuándo se usa la anotación @Override de Java y por qué?] [1], parece útil. [1]: http://stackoverflow.com/questions/94361/when-do-you-use-javas-override-annotation-and-why – COD3BOY
(http://docs.oracle.com/javase) /tutorial/java/annotations/predefined.html)[Este enlace podría ayudarlo] –