Sintaxis de herencia en Java para definir la herencia en Java.
Basta con utilizar la palabra extensa en la definición de la clase Java e indicar el nombre de la clase
padre.
Por ejemplo se muestra que la clase empleado hereda de la clase de persona y también la clase gerente
hereda de la clase empleado es decir que tenemos una jerarquía de clases.
Como nota todas las clases que no especifican de manera explícita una extensión entonces heredan de
la clase obvie la cual es una clase base de IAVA.
Cabe aclarar que en Java la herencia es simple.
Esto quiere decir que sólo podemos heredar de una clase a la vez puede haber una jerarquía de clases.
Como se muestra sin embargo una clase no puede heredar por ejemplo de persona y empleado al mismo tiempo
únicamente puede heredar de una sola clase.
Es importante indicar que todas las clases en Java heredan de la clase Object de manera indirecta o
directa en el caso de la clase persona.
Como no está indicado que hereda de alguna otra clase es decir que no usa una extensión en la definición
de su clase se entiende en automático que hereda de la clase Object así que de manera implícita hace
un extenso de la clase obvie pero las clases empleado y gerente cada una de ellas sí están definiendo
un extenso y están especificando la clase padre.
Sin embargo de manera indirecta la clase empleado por ejemplo al heredar de la clase de persona y la
clase de persona a su vez heredar de la clase Object de manera indirecta a la clase empleado también
heredará lo correspondiente a la clase Object.
Debido a que su clase padre extiende la clase obvie así que en Java todas las clases de una u otra manera
heredan las características de la clase obvie finalmente la clase Object es la clase core o base de
Java y pertenece al paquete y pertenece al paquete Java Punto Naranja.
Posteriormente hablaremos del tema de paquetes en Java y en el siguiente curso estudiaremos a detalle
la clase obvie
uso de super idish si aplicamos el concepto de herencia la clase e hija o su clase puede acceder a los
atributos métodos o constructores permitidos de la clase padre solo con utilizar la palabra super De
esta manera podemos aprovechar código heredado y aprovecharlo por ejemplo para iniciar un objeto de
la clase e hija así que es muy común utilizar la palabra super dentro del constructor para llamar desde
el constructor de la clase e hija al constructor de la clase padre Veamos un ejemplo de esto
en este código podemos observar el uso de la palabra super la palabra super debe de ser la primera instrucción
dentro del constructor de una clase así que se debe de llamar en primer lugar.
Esto debido a que va a hacer una llamada al constructor de la clase padre de la cual está heredando.
En este caso Estienne de la clase persona y el constructor de la clase de persona es el que podemos
observar en la figura se aprovecha para inicializar el constructor del objeto creado de la clase padre
y una vez que sea iniciado el constructor de la clase padre entonces se inicializar los atributos en
este caso de la clase hija y cuando se crea un nuevo objeto de la clase empleado en automático se inicializar
tanto los atributos de la clase padre caso de la clase persona como los atributos de la clase e hija
en este caso el atributo de sueldo.
Así el constructor de la clase e hija solo realizará el trabajo correspondiente a la clase e hija como
puede ser la asignación de sus atributos pero no realizará el trabajo que ya realiza el constructor
de la clase padre si es que es posible reutilizarlo.
Por ello se utiliza la palabra super.
De hecho la palabra Diz se puede utilizar de manera idéntica pero para llamar a un constructor de la
misma clase y la palabra super para llamar a los constructores de la clase padre.
La palabra super no sólo permite llamar a constructores de la clase padre sino cualquier atributo método
o constructor heredable de la clase padre.
En el ejemplo que vamos a realizar posteriormente vamos a observar cómo utilizar la palabra super para
mandar a llamar el constructor de la clase padre desde la clase e hija
uso de tu string y super en el código podemos observar un ejemplo para el uso del método.
El método string según hemos comentado lo vamos a utilizar para mostrar el estado de un objeto es decir
los valores de los atributos.
En cierto momento del tiempo de vida del objeto el método string es un método heredado de la clase obvie
y según hemos comentado la clase es la clase padre de todas las clases en Java ya sea de manera explícita
o implícita.
Por ejemplo en el caso de la clase empleado la clase horiek sería la clase abuela de la clase empleado
debido a que se ha definido de manera explícita en la clase persona como su clase padre debido a que
la clase persona como no define un extenso en automático va a ser un extenso pero de la clase Object
y la clase empleado al hacer extent de la clase de persona en automático va a heredar las características
de la clase de persona las cuales sean heredables pero también las características que sean heredables
de la clase obvie de manera indirecta.
De esta manera la clase de empleado también recibe los métodos y atributos que llegase a heredar de
la clase objeto para indicar que un método pertenece a una clase padre o de niveles superiores como
la clase Object.
Entonces debemos agregar la anotación overnight.
Esto quiere decir que estamos escribiendo el comportamiento de un método de la clase padre o clases
superiores.
Sin embargo este tema de escritura lo estudiaremos en el siguiente curso a más detalle pero para el
ejemplo de este curso sólo diremos que es necesario agregar esta notació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 string 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 de persona tiene su propia definición del método destruí
con sus propios atributos pertenecientes a la clase de persona.
Por ejemplo atributos de persona nombre y edad ahora desde la clase empleado lo ideal sería reutilizar
el código del método string de la clase padre.
Cómo hacemos esto dentro del método string de la clase empleado.
Lo que vamos a hacer es mandar a llamar al método de la clase padre.
Para ello es que la palabra super nos va a servir para mandar a llamar precisamente la definición de
la clase padre del método autodestruyen y posteriormente simplemente concatenados los valores correspondientes
a la clase empleado es decir los valores restantes a agregar a este método.
Esta llamada nos va a incluir los atributos de la clase padre como son Heydi persona nombre y edad y
concatenan simplemente los valores restantes.
En este caso el atributo de sueldo.
Así que la palabra súper nos va a permitir mandar a llamar métodos de la clase padre siempre y cuando
sean accesibles en este caso.
Este método es público y por lo tanto es accesible ya que si fuera privado no podríamos acceder a ese
método directamente con la sintaxis mostrada tendríamos que acceder a través de un método público y
posteriormente en el siguiente curso vamos a ver los demás modificadores de acceso para que también
tengamos el detalle de los modificadores de acceso restantes así que de esta manera ya tenemos completa
la implementación del método string simplemente reutilizando el Código de la clase padre y agregando
lo correspondiente de la clase e hija.
A continuación vamos a crear un ejercicio para poner en práctica estos conceptos.