Recent comments

JavaSE 19 Herencia en Java

El concepto de herencia se encuentra directamente relacionado con el concepto de @Override o sobreescritura.



La herencia es uno de los conceptos más importantes en la programación orientada a objetos (POO), y mencionaremos algunas de las razones más importantes por la cuales aplicaremos este concepto en el diseño de nuestras clases.

• La herencia nos permitirá representar características o comportamiento en común entre clases, permitiendo definir en la clase Padre los atributos o métodos que sean comunes a las clases hijas, las
cuales heredarán estos atributos o métodos definidos en la clase Padre.

• Lo anterior permite evitar duplicar el código entre la clase Padre y las clases Hijas, por lo que cumplimos con la reutilización de código que es uno de los principales objetivos de la POO.

• Si aplicamos el concepto de Herencia, podemos modelar de una manera más sencilla sistemas del mundo real. Si ya la definición de objetos es un gran aporte, diseñar una jerarquía de clases, nos facilitará aún más el modelado de clases.

Ejemplo de Herencia en Java:

Sintaxis Herencia:

Uso de Super y This.

El método toString es un método heredado de la clase object. La clase Object es la clase Padre de todas las clases Java, ya sea de manera explícita o implícita, según hemos comentado. Por ejemplo, en el caso de la clase Empleado, la clase Object sería la clase abuela de la clase Empleado, debido a que se ha definido que de manera explícita la clase Persona como su clase Padre, y debido a que la clase Padre no ha indicado que extiende de alguna clase, entonces se entiende que su clase padre es la clase Object. De esta manera la clase Empleado también recibe los métodos y atributos que llegase a heredar de la clase Object.

Para indicar que un método pertenece a una clase padre o de nivel superiores, como la clase Object, entonces debemos agregar la anotación @Override, esto quiere decir que estamos sobreescribiendo el comportamiento de un método de la clase padre o clases superiores. Sin embargo este tema de sobreescritura lo estudiaremos en el siguiente curso. Pero para el ejemplo de este curso sólo diremos que es necesario agregar esta anotación para que indiquemos al compilador Java que sabemos que es un método definido en una clase superior, en este caso es un método público de la clase Object.
Ahora, este método toString( ) nos sirve según hemos comentado, para convertir el estado de un objeto a una cadena. Pero para el caso que estamos mostrando, la clase Persona tiene su método toString( ) y lo ideal es que reutilizaramos este código para completar el método toString de la clase Empleado, ya que si combinamos el método toString de la clase Persona con el de la clase Empleado, entonces podremos mostrar el estado de todos los atributos de la clase Empleado y de su clase padre
Persona.

¿Cómo hacemos esto? Como observamos en el código, lo que hacemos es utilizar la palabra super, y debido a que toString es un método público redefinido (sobreescrito) en la clase Persona, entonces podemos acceder a este método de la clase padre por medio de la palabra super, el operador punto y el nombre del método que deseamos acceder del padre. Esto nos va a regresar
una cadena con el estado del objeto Persona, y con ello solo basta concatenar el valor que aún no hemos colocado de la clase Empleado, por ello concatenamos el valor de la variable sueldo y ahora si podemos regresar la cadena completa para que ahora el método toString de la clase Empleado pueda mostrar tanto su propio estado como el estado de cada atributo de su clase padre que es Persona.

No hay comentarios.