Bien vamos a continuar con nuestro ejercicio vamos a crear ahora una clase llamada ejemplo herencia
ni derecho ni un atlas.
Y la clase se llama ejemplo herencia dejamos los demás valores por default y damos en finalizar
y vamos a hacer lo siguiente Vamos a heredar un método main damos formato y vamos a crear ahora un nuevo
objeto de tipo empleado.
El objeto de tipo Persona de momento no lo vamos a trabajar ya que nos interesa trabajar con las clases
hijas pero también podrían crear objetos de tipo personal sin ningún problema así que vamos a crear
una variable de tipo ampliado llamada empleado 1 y ahora vamos a utilizar el constructor de la clase
empleado el que recibe el atributo de nombre y sueldo.
Ese es el constructor que vamos a utilizar así que creamos un nuevo objeto de tipo empleado y pasamos
los valores de nombre Juan y de sueldo 5000 Punto y Coma y Podemos se vaques este momento funciona todo
sin problemas y si mandamos a imprimir este objeto imprimimos directamente la variable empleado 1 vamos
a guardar cambios y ejecutamos
así que Podemos se va a la salida tenemos el valor del objeto persona persona con nombre Juan y podemos
observar que el género no sea inicializar.
La edad es igual a cero y la dirección también nos inicializar tiene el valor de Nul y posteriormente
tenemos los valores directamente de la clase empleado hoy día empleado igual a 1 y el sueldo de 5000.
Recordemos que este es un solo objeto lo estamos dividiendo lo estamos separando para que nos quede
claro cómo es que funciona la herencia.
Sin embargo en memoria es un solo objeto de tipo empleado que hereda las características de la clase
persona que es la clase padre y con eso podemos llevar que no sea una inicializar o algunos elementos
solamente se alisó el nombre de Juan.
Esto debido a que mandamos a llamar el constructor de la clase padre.
Esto debido a que mandamos a llamar el constructor de la clase padre dentro del constructor de empleado.
Por ello es que únicamente se inicia hizó el atributo de nombre de la clase padre.
Ahora cómo podemos hacer para también asignar valores a esos atributos restantes.
Podríamos mandar a llamar el constructor completo y pasar argumentos también a este constructor o también
lo que podemos hacer es hacer uso de los métodos heredados de la clase persona así que podríamos poner
empleado 1 punto Zet edad.
Este método no está definido dentro de la clase de empleado sino que está definido dentro de la clase
persona.
Sin embargo como lo estamos heredando entonces lo podemos mandar a llamar ya que es un método público
y se hereda de manera automática a la clase empleado.
Así que podemos poner el valor de edad por ejemplo 28 años
podemos poner el género en este caso masculino
y también la dirección que es una cadena.
Por ejemplo lomás número 13 cualquier valor que ustedes deseen guardamos cambios y ejecutamos
y podemos llevar el proceso hacia la inicializar ya los valores no solamente de nombre sino también
de género edad dirección.
Todo esto dentro de los atributos de la clase padre persona y también la clase empleado ya contiene
cada uno de sus valores.
Bien vamos a ejecutar paso a paso este código vamos a poner un punto de ruptura.
Damos un derecho de bufidos y vamos a presionar F7 para entrar al detalle del constructor de la clase
empleado podemos observar que lo primero que se manda llamar es el constructor de la clase empleado.
Sin embargo para poder terminar de crear este objeto empleado necesitamos terminar de crear el objeto
de la clase padre.
Por ello es que la primer llamada debe de ser la llamada al constructor de la clase padre en dado caso
de que esta línea no exista.
Entonces se va a mandar a llamar de manera automática al constructor de la clase padre sin argumentos
esto para que termine de crear el objeto de la clase padre y posteriormente regresa a terminar de construir
el objeto de la clase e hija.
Así que por ello es importante conocer el orden de creación de los objetos así que presionamos F7 y
ahora ya estamos dentro de la clase padre estamos en el constructor de la clase padre para inicializar
el atributo de nombre presionamos f 8 y de nueva cuenta f 8 y con esto ya se inicializar el atributo
de la clase padre terminamos de ejecutar el constructor de la clase padre y podemos observar que continuamos
exactamente después de la línea de haber llamado al constructor de la clase padre.
Recordemos que memoria es un solo objeto el objeto de tipo empleado pero contiene las características
de la clase padre.
En este caso la clase de persona vamos a continuar si presionamos f 8 entonces se inicializar el atributo
Heydi ampliado utilizando nuestra variable estática Contador empleado en este caso se le asigna el valor
de 1 y finalmente se asigna el valor de sueldo al atributo de sueldo.
Presionamos F8 y regresamos a nuestra clase de prueba.
Ejemplo herencia presionamos F8 y en este momento ya se ha asignado ya se ha creado un objeto de tipo
empleado en memoria pero debido a que hemos definido el método string ya no observamos la referencia
en memoria sino que ahora observamos los valores del método autodestruyen pero este objeto ya se ha
creado en memoria tenemos un objeto de tipo empleado
pero internamente tiene las características de la clase padre persona
y a su vez esta clase persona tiene de manera interna las características de la clase Obie
así que ese es el orden de creación de los objetos se crea nuestro objeto empleado pero se debe determinar
de inicializar el objeto persona y a su vez el objeto persona también manda llamar el constructor de
la clase Object.
Aquí es donde se crea el espacio en memoria se asigna la referencia en memoria y termina de asignar
las características de la clase padre a la clase persona y finalmente termina de asignar las características
de la clase empleado pero es un solo objeto en memoria que internamente tiene las características de
las clases padre así que por ello nuestra variable empleado apunta a un objeto de tipo empleado con
los atributos de Heydi empleado 1 sueldo igual a 5 000 e internamente contiene más características como
son las características de Static el contador de empleado con el valor de 1 y las características heredadas
como es el atributo de nombre con el valor de Juan.
El género que no se inicializar la edad tampoco y la dirección que tampoco se inicializar.
Eso es lo que vamos a hacer precisamente en estas líneas.
Así que si presionamos esta línea se manda llamar el método presionemos F7 para ver dónde está este
método Zet edad.
Así que presionamos F7 y podemos ver que este método está dentro de la clase de persona así que este
método público se ha heredado y por ello es que lo podemos mandar a llamar desde la clase empleados
sin ningún problema presionamos F8 se termina de asignar el valor de edad al atributo de la clase padre
y podemos observar que ahora el valor edad heredado en nuestra clase empleado contiene el valor de 28
así que podemos ver que la variable empleado de manera interna puede acceder a las características heredadas
de la clase padre.
En este caso de la clase persona y así podemos continuar asignamos el valor de género en este caso ya
se ha asignado el valor de masculino el carácter M.
Posteriormente asignamos el valor de lo +13 en la dirección y si mandamos a imprimir entonces podemos
observar ya estos cambios el objeto persona se ha terminado de asignar cada uno de sus valores.
Como podemos observar y también los valores de la clase empleado pero recordemos que es un solo objeto
de memoria bien vamos a detener esta ejecución paso a paso con eso terminamos.
Y por último vamos a crear un objeto de tipo cliente simplemente para terminar de poner en práctica
este ejercicio.
Pero con esto ya debería quedar claro el concepto de herencia así que ahora creamos otro objeto de tipo
cliente y son exactamente los mismos pasos mandamos a llamar el constructor de la clase cliente y en
este caso el valor de fecha de registro vamos a crear un nuevo objeto de tipo fecha.
Así que por ello utilizamos la palabra reservada NIU y posteriormente la clase Daito ya que el argumento
que estamos recibiendo también es de tipo Daito y posteriormente proporcionamos el valor de Chú para
indicar que este cliente es un cliente VIP.
Sin embargo esta clase de EyT debemos de importarla ya que está en otro paquete en otra carpeta así
que damos clic y seleccionamos import ya va punto y útil punto y posteriormente vamos a ver a detalle
el tema de paquetes pero de momento deben de agregar esta sintaxis este importe para poder utilizar
esta clase que se encuentra en otro paquete.
En este caso en el paquete de Java punto y útil.
Así que con esto ya hemos creado nuestro objeto cliente de manera interna todos los valores de la clase
persona que es la clase padre no se le ha asignado ningún valor si vamos a este constructor podemos
observar que no hay ninguna llamada al método Super sin embargo como hemos comentado se va a mandar
a llamar de manera automática el constructor súper vació de la clase padre.
Por ello es que debemos de tener definido este constructor.
De lo contrario nos va a marcar error ya que como hemos comentado si no tenemos la llamada a Super dentro
de nuestro constructor de la clase e hija entonces en automático se van a llamar el constructor de la
clase padre vacío vamos a ponerlo entre comentarios para observar este error y podemos llevar que en
este caso nos manda un error de que no ha encontrado un constructor adecuado dentro de la clase de persona
es decir el constructor sin argumentos así que o mandamos a llamar un constructor adecuado de la clase
padre o definimos el constructor vació en la clase padre y debido a que agregamos un constructor con
un argumento entonces el compilador ya no agrega este constructor vacío.
Por ello es que lo debemos de agregar manualmente así que con eso estamos siendo nuestro objeto cliente
y podemos mandarlo a imprimir imprimimos los valores de nuestro objeto cliente 1 guardamos cambios y
ejecutamos y podemos observar que ya tenemos los valores en nuestro objeto cliente.
Sin embargo los valores del objeto persona el nombre es igual a NULL el género es nulo.
La edad también es cero la dirección es Null y al cliente se le asignó el cliente de uno y también un
valor de fecha de registro.
Así que para ello se utilizó el objeto de EyT.
Para ello creamos un nuevo objeto de tipo fecha para asignarle precisamente un nuevo objeto de tipo
fecha.
Si quisiéramos asignar valores a los atributos de la clase padre podemos hacer lo mismo que hicimos
en el objeto empleado 1.
Podemos mandar a llamar los métodos públicos como puede ser el nombre para asignarle por ejemplo el
valor de Carla y así sucesivamente podríamos modificar todos los valores de la clase padre utilizando
los métodos públicos los métodos Zet para modificar los valores guardamos cambios y ejecutamos y podemos
observar que ya tenemos en el atributo de nombre el valor de Carla dentro de nuestro objeto de tipo
cliente bien vamos a ejecutar paso a paso simplemente para que veamos también la construcción de este
objeto.
Ponemos un punto de ruptura en la creación del objeto cliente y seleccionamos de Buffy bien y empezamos
con nuestro modo debug presionamos F.
Esto crea de manera automática nuestro objeto de EyT si es que nos llevará a la construcción de este
objeto para salirnos de la ejecución de ese objeto de este constructor podemos presionar este auto pero
en este caso no nos mandó al detalle de la construcción del objeto Daito así que vamos a continuar presionamos
F7 o pintura.
Y aquí la primera línea no va a ser la asignación de los atributos sino que va a mandar a llamar el
constructor de la clase padre vamos a presionar F7 y podemos llevar que manda llamar el constructor
vació de manera automática así que el compilador necesita primero terminar de crear el objeto persona
para poder a su vez crear el objeto hijo.
Y si presionamos aquí F7 entonces nos lleva al constructor de la clase obvie ya que como hemos comentado
si no definimos otra cosa dentro de nuestra clase la definición de la clase en automático extiende la
clase obvien.
Por ello es que nos llevó al constructor de la clase obvie y aquí en este caso este constructor ya no
es un código que nosotros podamos observar sino que ya es parte de las librerías de IAVA.
Vamos a salirnos de la ejecución de este código presionando este auto y regresamos al constructor vació
de nuestra clase padre.
En este momento ya la clase Objet hizo su trabajo.
Posteriormente termina de inicializar las variables de la clase persona vamos a continuar con f 8 y
regresamos a la construcción de nuestro objeto cliente y empieza a asignar los atributos de nuestra
clase así que presionamos f 8 y podemos observar que en este caso Diz ya está apuntando a un objeto
de tipo cliente y ya modificó los atributos de Heydi cliente con el valor de 1.
La fecha de registro también ya le asignó un valor Viv es un Juliano con el valor de Chú y también tenemos
valores heredados en este caso los valores heredados como hemos visto no se les ha asignado ningún valor
así que todos los valores tienen su valor por Defour pero ya se ha creado en memoria el espacio para
cada uno de estos atributos.
Por ello es que primero se mandó a llamar cada uno de los constructores de la clase padre para reservar
espacio de memoria para cada uno de estos atributos y una vez que termina de asignar espacio de memoria
para cada uno de los atributos de las clases padre entonces puede continuar con la clase e hija así
que vamos a continuar y podemos observar que con esto se ha terminado de crear nuestro objeto cliente
y podemos acceder en este caso al método shed nombre.
Y si presionamos F7 nos lleva a la clase padre ya que este método se está heredando desde la clase padre
presionamos f 8 se está asignando el valor de nombre y ahora ya tenemos el valor de nombre dentro del
atributo heredado de la clase padre presionamos f 8 y de nueva cuenta f 8 y podemos observar ya los
valores en el objeto de tipo cliente tenemos los valores de nombre Carla.
Los demás valores no los hemos inicializar solo podrían inicializar sin ningún problema mándanos llamarlos
métodos etc. Y tenemos también los valores de cliente igual a 1.
La fecha de registro y también el valor de Viv igual a bien así.
Con esto hemos puesto en práctica el concepto de herencia a su vez también vimos el orden de construcción
de nuestros objetos cuando estamos trabajando con el concepto de herencia.
Todo esto lo debemos de tener claro ya que este tipo de conceptos los vamos a utilizar de manera frecuente
cuando estamos trabajando con Java.
Eso es solo por esta elección y nos vemos en el siguiente vídeo.
Saludos.