Hoy vamos a hablar de la importancia de la anotación Override en Java. Veremos el uso de esta anotación y el porqué es recomendable su uso en nuestros desarrollos. Lo primero es contar que es una anotación.

anotacion override en java
anotacion override en java

Las anotaciones están disponibles en Java desde la versión 1.5. Estas permiten añadir información sobre el programa que puede ser interpretada en tiempo de compilación y ejecución. En este caso, la anotación @Override se sitúa justo delante de un método y lo que indica es que ese método está siendo sobrescrito. Pero ojo, el uso de esta anotación es opcional.

En este ejemplo, tenemos una clase (MainClass) que hereda y sobrescribe el método «metodoPrincipal» de la clase «ClasePadre» sin usar la anotación (La hemos incluido como un comentario, por lo que no está siendo efectiva). Todo funciona correctamente. Podríamos descomentar la anotación y no obtendríamos un restulado distinto.

public class MainClass extends ClasePadre {
	public static void main(String[] args) {
		MainClass m = new MainClass();
		m.metodoPrincipal();
	}

        //@Override
	public void metodoPrincipal() {
		contador--;
		System.out.println("Contador: " + contador);
	}
}
public class ClasePadre {
	protected int contador;
	public void metodoPrincipal() {
		contador++;
		System.out.println("Contador: " + contador);
	}
}
Contador: -1

Si el resultado no cambia, ¿Qué ventajas nos ofrece? Pues ofrece una serie de ventajas a la hora de desarrollar y ejecutar tu aplicación, ya que le indicamos al compilador que estamos sobrescribiendo un método, él lo comprueba y nos puede avisar de si nos hemos equivocado al implementar el método.

Motivos reales de uso de anotación Override en Java

  1. Indica a los programadores que lean el código que ese método está sobrescrito y por tanto proviene de una SuperClase o Interfaz.
  2. Si de una superclase se elimina un método que se hereda en clases concretas y en esas clases está marcado con Override, el compilador te dará un aviso de que ya no estás sobrescribiendo el método. En este ejemplo, el compilador nos indica que el metodo «metodoPrincipal» tiene que sobrescribir un método de una clase padre o implementar un método de una interfaz, cosa que ya no tenemos dado que hemos comentado el método «metodoPrincipal» de la clase «ClasePadre»
    public class ClasePadre {
    	protected int contador;
    	/*public void metodoPrincipal() {
    		contador++;
    		System.out.println("Contador: " + contador);
    	}*/
    }
    public class MainClass extends ClasePadre {
    	public static void main(String[] args) {
    		MainClass m = new MainClass();
    		m.metodoPrincipal();
    	}
    
    	@Override
    	public void metodoPrincipal() {
    		contador--;
    		System.out.println("Contador: " + contador);
    	}
    }
    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    	The method metodoPrincipal() of type MainClass must override or implement a supertype method
  3. Avisa a los programadores si se han equivocado sobrescribiendo o implementado un método. Es posible que nos lleguemos a confundir con un ejemplo como el siguiente. En este caso puede que nos cueste verlo, pero al codificar nos hemos saltado implementar nuestro método con un parámetro Integer[], en vez de eso, lo hemos declarado sólo con un parámetro Integer sin los corchetes que indican que es un array.
    public class ClasePadre {
    	protected int contador;
    	public void metodoPrincipal(Integer[] integer) {
    		contador++;
    		System.out.println("Contador: " + contador);
    	}
    }
    public class MainClass extends ClasePadre {
    	public static void main(String[] args) {
    		MainClass m = new MainClass();
    		m.metodoPrincipal(4);
    	}
    
    	@Override
    	public void metodoPrincipal(Integer integer) {
    		contador--;
    		System.out.println("Contador: " + contador);
    	}
    }
    Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    	The method metodoPrincipal(Integer) of type MainClass must override or implement a supertype method

Principalmente esas 3 son sus características y los motivos por los que se recomienda usarlo en nuestros desarrollos.

 

Importancia de la anotación Override en Java
Etiquetado en:        

Un pensamiento en “Importancia de la anotación Override en Java

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Social media & sharing icons powered by UltimatelySocial