Sobrecarga y Sobreescritura de métodos en JAVA

En JAVA como todos los lenguaje de programación permite crear métodos, que son todos aquellos bloques de código donde manejaremos los datos de la clase. Java por ser un lenguaje orientado a objetos permite la sobrecarga y sobreescritura de métodos. Estos dos conceptos suelen ser confundidos al principio cuando se esta comenzando a programar con el paradigma orientado a objetos, esta entrada del blog tratara de explicar de manera sencilla, que son estos dos conceptos y cuales son sus diferencia.

Comenzaremos hablando de la sobrecarga de métodos (Overloading).

En JAVA sobrecargar un método es permitir tener dos o mas métodos con el mismo nombre pero con diferentes tipos de parámetros u operaciones, es tarea del compilador saber usar un método u el otro dependiendo del tipo de dato que se le este pasando por parámetro.

Como tips al pase de parámetros también se le suele decir firma. Así que ya saben cuando hablemos de la firma de un método estamos hablando a sus parámetros

Por otro lado tenemos la sobreescritura de metodos(Overriding) , la sobreescritura esta estrechamente ligada a la herencia de clases en JAVA,  recordemos que una subclase hereda todos los métodos de su clase padre, estos metodos son accesibles a dicha subclase a menos que la subclase sobreescriba los métodos. 

Diremos que una subclase esta sobreescribiendo un método de su clase padre cuando  esta defina un método con las mismas características  que el método de la superclase.  

Asi como en la sobrecarga de metodos nos fijamos en su firma en  la sobreescritura nos debemos fijaremos en la estructura del método , esta debe ser igual a la estructura de la superClase, debe tener el mismo nombre y debe retornar el mismo tipo de dato , de la misma forma no podra tener un tipo de acceso mas restrictivo que el original.

 Para realizar la sobreescritura de metodos es importante saber ciertas reglas para poder aplicarla de forma correcta:
  1. El nivel de acceso del método sobreescrito no puede ser más restrictivo que el método de la SuperClase, es decir, que el método de la clase padre sea protected y el método de la clase hija sea private.
  2. El tipo de retorno del método sobreescrito debe ser el mismo del método de la SuperClase.
  3. La firma del método sobreescrito debe ser idéntico al método de la SuperClase.
  4. El nivel de acceso del método puede ser del mismo nivel o de un nivel menor que el método de la SuperClase.
  5. No se puede sobreescribir métodos marcados como final.
  6. No se puede sobreescribir métodos marcados como static.
  7. Los métodos que son declarados como private no pueden ser sobreescritos, ya que estos no pueden ser heredados.
  8. La sobreescritura de métodos puede lanzar excepciones de tipo runtime sin necesidad de estar en la firma.
  9. La sobreescritura de métodos no permite que la subclase lanze otro tipo de excepción que no sea del mismo tipo de excepción que el de la Super Clase.
Vimos  en esta entrada un nivel muy general de lo que es la sobrecarga y sobreescritura de métodos, lo que ambos conceptos nos aportan es la facilidad, extensibilidad y flexibilidad en el código.

Esto fue todo por esta entrada, espero que le sirva de ayuda... 

System.out.println("Bye World");

Comentarios

Publicar un comentario

Entradas populares