Seguramente muchos de ustedes se habrán preguntado ¿que hace? o ¿para qué sirve esa @Override que nos coloca automáticamente el IDE al momento de implementar una interfaz? ¿Tendrá algún beneficio?.
Bueno para aquellos con esa interrogante les traigo la respuesta.
Pues si, si nos da un beneficio cuando codificamos y consiste en advertirnos de posibles errores de lógica o compilación en los siguientes casos:
- Cuando no estemos sobrescribiendo o implementando ningún método de la interfaz o superclase.
- Cuando nos hemos equivocado en la firma del método a sobrescribir.
Es por estos beneficios que deberíamos asumirlo (sobretodo aquellos que venimos de la vieja escuela de Java 1.1, 1.2 o 1.4) como una convención al momento de programar. Ahora bien vayamos a un ejemplo para ver de lo que estamos hablando.
EL siguiente código consta de una super clase la cual vamos a extenderla pero a propósito de este ejemplo sobrescribiremos erróneamente los métodos de la clase de tal forma que no coincidan en su firma con el original (el de la súper clase) o sencillamente no coincida el nombre del método, de tal forma de poder ver como al usar @Override, esta nos indica que hay algo mal, en nuestro código.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
package com.josedeveloper; class SuperClass { public int getSomeNumber() { return 0;} } public class SubClass extends SuperClass { @Override public int getSomeNumber(int i) { return 0; } @Override public void showsShomething() { System.out.println("Show something"); } } |
A continuación les dejo par de imágenes donde el IDE nos indica el error
Como pudieron darse cuenta el Editor (en este caso eclipse), nos indica que hay un error en los métodos que estamos intentando sobrescribir.
Ya conocemos el significado de @Override y sus ventajas, ahora lo que resta es que hagamos uso de ella y lo asumamos como una buena practica de programación en Java.