Hola y bienvenidos a esta elección.
A continuación vamos a estudiar el tema de su escritura de métodos en Java están listos.
Vamos bien como primer paso abrimos nuestro IDE y cerramos cualquier proyecto que tengamos abierto.
Damos clic derecho Claws posteriormente vamos a crear un nuevo proyecto damos clic en File new project
seleccionamos lleva Whitney en Java Application.
Damos clic en Next.
El nombre del proyecto se va a llamar ejemplo sobre escritura y lo depositamos en la carpeta de cursos
y agonal Java.
El nombre de proyecto va a ser MX con GBM globalmente.
La versión 1.0 y dejamos el nombre vació del paquete y damos clic en Finalizar.
Ahora para poner a prueba este ejemplo de escritura necesitamos aplicar también el concepto de herencia
así que vamos a crear dos clases sobre sus packages.
Vamos a crear una primera clase damos clic derecho y ya va a clase el nombre de la clase se va a llamar
empleado y lo depositamos en el paquete.
Ejemplo
sobre escritura y damos clic en Finalizar y posteriormente vamos a crear una subclase de esta clase.
Sobre ese mismo paquete damos un derecho Nioh y a la clase el nombre de la clase se va a llamar gerente
y lo depositamos en el mismo paquete y damos sigue en finalizar.
Sin embargo esta clase de gerente va a extender de la clase empleados a segregamos extenso empleado
y con esto ya hemos creado nuestras dos clases.
Ahora vamos a modificar nuestra clase empleado vamos a quitar estos comentarios con control.
Posteriormente vamos a agregar dos atributos de tipo protected así decidimos protected estrellen.
Posteriormente el atributo de nombre y otro atributo de tipo doble llamado sueldo y agregamos un constructor
también de tipo protected
vamos a recibir dos argumentos para inicializar cada uno de los atributos así que agregamos esto en
nombre y doble sueldo para inicializar cada atributo y posteriormente modificamos el valor de cada atributo
con los argumentos que estamos recibiendo
bien con esto ya estamos inicializar cada atributo a través de este constructor con dos argumentos y
posteriomente lo que vamos a hacer es definir un método llamado obtener detalles así escribimos Public
destruí
el método se llama obtener detalles y este método básicamente va a retornar los valores de los atributos
nombre y sueldo.
Así escribimos Bruton nombre la cadena de nombre dos puntos espacio y concatenados el valor del atributo
de nombre y posteriormente con k tenemos el segundo valor agregamos Koma espacio sueldo dos puntos espacio
e imprimimos el valor de sueldo.
Podemos utilizar dis para que sepamos de manera inmediata que estamos utilizando los atributos de nuestra
clase así que ya estamos definiendo el método obtener detalles y ahora vamos a agregar los métodos jet
set para cada atributo nombre y sueldo así que damos clic derecho posteriormente seleccionamos insert
Coupet seleccionamos Guedea Ancer y seleccionamos los dos atributos para que generen los métodos jet
set para cada atributo
así que con esto ya tenemos completa nuestra clase de empleado ahora vamos a hacer nuestra clase de
gerente vamos a quitar estos comentarios
y aquí en primer lugar ya nos empieza a mandar un mensaje en el cual nos indica que debemos utilizar
un constructor con dos argumentos ya que la clase empleado ya no cuenta con el constructor vació debido
a que hemos definido un constructor únicamente con dos argumentos.
Por lo tanto es necesario utilizar el constructor con los argumentos de la clase empleado para poder
inicializar correctamente este objeto de la clase gerente.
Sin embargo esta clase gerente contiene una característica más a diferencia de la clase empleado el
empleado tiene el nombre y el sueldo pero el gerente tiene además el atributo de departamento así que
agregamos ese atributo privado de tipo string
llamado departamento y posteriormente vamos a agregar un constructor para inicializar en todos los atributos
de la clase padre de la clase empleado y también este nuevo atributo de la clase e hija así que agregamos
un constructor público se llama gerente y recibimos los argumentos de nombre sueldo
y departamento y lo que vamos a hacer es utilizar la palabra super para inicializar los atributos de
la clase padre.
Así escribimos super esto manda llamar al constructor de la clase padre y le pasamos los valores de
nombre y sueldo que son los argumentos que estamos recibiendo.
Recordemos que la palabra súper si la vamos a utilizar para mandar a llamar a un constructor debe de
ser la primera línea dentro de un constructor y posteriormente inicializar el atributo de departamento.
Hasta aquí todavía no hemos visto nada de eso reestructuran esto solamente en la configuración de nuestra
clase empleados y gerentes respectivamente.
Ahora vamos a empezar a aplicar el concepto de escritura el método heredado de la clase padre.
Así que escribimos lo siguiente escribimos el método padre heredado así que para sobrescribir un método
básicamente vamos a utilizar la misma firma del método padre así que incluso podemos copiar esta misma
firma
la pegamos y con eso estamos asegurando que estamos escribiendo el método de la clase padre podemos
hacer cambios en el modificador de acceso pero no puede ser más restrictivo así que como en este caso
tipo de público ya no podríamos hacerlo más restrictivo es decir que ya no podemos utilizar protected
de fought opacas ni tampoco Privé bien así que con eso estamos definiendo la sobre escritura del método
obtener detalles de la clase padre y ahora lo que vamos a hacer es que vamos a retornar cada uno de
los atributos tanto de la clase empleado como de la clase gerente.
Así que vamos a copiar el contenido del método obtener detalle
pero la escritura significa que podemos modificar el contenido de la clase padre y precisamente modificar
o sobreescribir el contenido del método en la clase e hija así que en este caso vamos a modificar el
contenido en la clase e hija y vamos a agregar lo siguiente
agregamos el atributo de departamento en la definición de este método obtener detalles
así que podemos observar que este método obtener detalles no solamente está regresando lo que ya hacia
el método de la clase padre sino que además estamos modificando el comportamiento obviamente podría
regresar cualquier otro código.
Esto solamente lo estamos haciendo para que podamos observar que la clase e hija puede modificar el
contenido del método definido en la clase padre eso es la escritura de métodos y finalmente agregamos
los métodos jet set para el atributo de departamento
damos clic en generar y ya tenemos los métodos G.T y ser el atributo de departamento.
Aquí otra cosa interesante es que podemos observar que estamos accediendo a los atributos de nombre
y sueldo sin necesidad de mandar a llamar.
Los métodos jet set de estos atributos ya que sus atributos se declararon como protegidos en la clase
padre así que realmente aquí lo que estamos utilizando es directamente los atributos definidos en la
clase padre son atributos heredados de la clase padre.
Bien vamos a dar un formato y finalmente vamos a crear una clase de prueba sobre son los packages.
Vamos a dar clic derecho new Java class que se llame ejemplo
sobre escritura y el paquete se llama test y damos sigue en finalizar.
Quitamos estos comentarios agregamos un método main Publix atisbó y Main tabulador y vamos a crear un
objeto primero de la clase empleado
una variable de tipo empleado llamado empleado
y mandamos a llamar el constructor de la clase padre con los valores de Juan en el nombre y mil en el
valor de sueldo importamos esta clase ya que se encuentra en el paquete de ejemplo sobre escritura y
mandamos a imprimir esta variable con ese tabulador.
Mandamos a imprimir la variable empleado aquí tenemos que cambiar un detalle en la clase empleado utilice
protected.
En este caso no necesitamos utilizar el modificador acceso público de lo contrario no vamos a poder
utilizar ese constructor en una clase externa al paquete que no extiende de la clase empleado así que
por ello necesitamos hacer este cambio para que podamos ejecutar esta prueba así que guardamos cambios
y ejecutamos
y podemos ver que se está imprimiendo la información del objeto empleado.
Sin embargo como no hemos definido el método autodestruyen únicamente estamos recibiendo la información
donde se encuentra este objeto en memoria.
Vamos a hacer un cambio con la variable empleado vamos a mandar a llamar el método obtener detalles
guardamos cambios y ejecutamos
y ahora sí podemos observar el detalle del objeto.
El nombre con el valor de Juan y el sueldo con el valor de mil así que hasta aquí estamos utilizando
únicamente el método de la clase padre.
Ahora vamos a crear un objeto de la clase e hija
definimos el objeto de tipo gerente.
Creamos el objeto le asignamos el nombre de Carla el sueldo de 2 000 y el departamento finanzas y hacemos
lo mismo mandamos a imprimir importamos esta clase y mandamos a imprimir esta variable pero con el objeto
gerente mandamos a imprimir.
Ahora el método obtener detalles de la clase e hija guardamos cambios y ejecutamos
y podemos observar que a diferencia de la clase padre donde no se incluye el departamento en el caso
de la clase gerente se incluye no solamente el nombre y el sueldo sino que también ahora se modificó
se escribió este método para que incluyera el departamento.
En este caso el Departamento de Finanzas.
Ahora qué pasa si no hubiéramos escrito este método.
Obtener detalles en la Clase E HIJA.
Vamos a poner esto entre comentarios
podemos observar que el código sigue compilando sin ningún problema.
Guardamos cambios y ejecutamos y podemos llevar también que se ejecuta sin ningún problema.
Así que el objeto gerente manda imprimir el nombre de Carla y el sueldo de 2000.
Sin embargo en este caso como no estamos escribiendo el método en la clase e hija
ya no estamos accediendo al valor de departamento ya que la clase padre únicamente puede acceder a los
atributos definidos precisamente en la clase padre pero no puede acceder a los atributos definidos en
las clases hijas así que por ello este código sigue funcionando.
Pero el método que se está ejecutando es el método heredado de la clase padre ya que no se ha escrito
en la clase gerente vamos a regresar este código lo volvemos a activar y en este momento se está escribiendo
se está modificando el contenido del método obtener detalles desde la clase e hija se incluye el atributo
de departamento.
Ejecutamos y observamos el mismo resultado donde recibimos el método desde la clase e hija y obtenemos
el Departamento de Finanzas.
Una última cosa en la clase gerente también se puede utilizar lo que se conoce como una anotación la
notación de overnight para indicar al compilador que estamos escribiendo un método de la clase padre.
Aquí nos marca algo más el Live que necesitamos crear el Java Doc.
Vamos a dar clic simplemente para agregar este ya vacío.
Pero aquí lo interesante es que el compilador nos agrega esta ONG de que estamos escribiendo el método
de la clase empleado y como indica aquí para ir al método ancestro podemos presionar contra el chip.
Así que si presionamos sobre el método contra el chip nos lleva a la definición del método padre.
El método que estamos ocultando o sobre escribiendo
bien vamos a quitar este comentario de Java Doc no es necesario a menos que ustedes quieran agregarlo
bien pero con esto podemos observar que podemos utilizar la notación de averigue para indicar al compilador
que vamos a sobreescribir un método de una clase padre.
Esta anotación no es necesaria pero es recomendable agregarla para que líder también detecte que estamos
escribiendo un método de la clase padre además de que estamos ayudando al compilador para que detecte
automáticamente que estamos escribiendo un método de la clase padre.
Un detalle más en la escritura de métodos es que no podemos cambiar por ejemplo el nombre debe de ser
exactamente el mismo no lo podemos cambiar así que en la clase padre el método se llama obtener detalles
y también en la clase hija se debe de llamar exactamente igual.
El tipo de dato tampoco lo podemos modificar debe de ser el mismo.
Lo único que podemos variar es el modificador de acceso.
Por ejemplo si lo hacemos más restrictivo vamos a ponerlo como protected.
Hay una regla en la escritura que no podemos asignar un modificador de acceso más restrictivo ya que
en el caso del método padre fue público.
No podemos sobreescribir un método e indicar que tenga un modificado el acceso más restrictivo.
Así que por ello en este caso nos marca este error.
No podemos hacer si en la clase de padre el modificador de acceso es públic en la clase e hija.
La escritura no puede tener un modificador más restrictivo pero si por ejemplo en la clase padre en
lugar de Public utilizáramos por ejemplo de opacas es decir en ausencia de modificador se convierte
en opacas.
Entonces la escritura es decir en la clase hija podríamos hacerlo menos restrictivo entonces de default
opacas lo podemos cambiar por ejemplo hacia Public y en este caso únicamente está fallando la llamada
al objeto de la clase padre ya que estamos dentro de otra clase y no podemos mandar a llamar.
Un método que es de falopa cazzo dentro de otro paquete.
Esta clase de ejemplos sobre escritura tendría que estar en el mismo paquete para que este método pudiera
ser utilizado pero podemos observar que el método obtener detalles funciona sin ningún problema.
Vamos a poner esta línea entre comentarios para poder realizar la prueba.
Guardamos cambios y ejecutamos y con eso podemos ver que podemos mandar a llamar.
Este método que es menos restrictivo en la clase hija sin ningún problema.
Aunque la clase padre este método es más restrictivo es decir de falopa catch en la clase fija estamos
abriendo más este método.
Es decir que lo estamos haciendo menos restrictivo o en este caso público así que son las reglas para
sobreescribir un método en Java sin embargo lo común es que si estamos utilizando por ejemplo públic
en la clase padre también en la clase e hija vamos a utilizar el mismo modificador de acceso.
Sin embargo estamos preparando una certificación.
Esto puede ser preguntá de certificación que en la clase e hija el modificador de acceso puede variar
pero únicamente hacerlo menos restrictivo.
Si hacemos más receptivo el método que estamos escribiendo no va a funcionar la escritura así que eso
es todo por esta elección y nos vemos en el siguiente video.
Saludos.