Bien, qué sucede cuando los modificadores en persona en vez de privé son protected y es lo que quiero
Reiser en esta clase.
Entonces protected vamos a cambiar a protegido.
Y así por cada uno.
Bien, hasta el momento ningún cambio, porque tenemos los que transita el único tema que hay que tener
en cuenta que se pueden acceder de forma directa, siempre y cuando la clase padre persona esté en el
mismo package que la clase alumno y profesor.
Por ejemplo, en vez del set acá lo voy a quitar, voy a quitar esto y acampo colocar Zeth se fijan?
Es decir, no sets, si no de forma directa nombre.
Igual se puede asignar de forma directa.
Por qué?
Bien protected básicamente significa que es protegido en la clase padre y lo pueden acceder también
las clases hijas, pero también funciona muy parecido al de package.
Por lo tanto se llama clase.
Padre e hija están en el mismo paquete.
Se pueden acceder y leer de forma directa y en realidad cualquier clase que esté dentro РАМКАХ por ejemplo
herencia, ejemplo, herencia está enemigo pacato.
Por lo tanto, acá se puede acceder de forma directa al atributo nombre de persona.
Hija se hereda, alumno lo hereda, pero se accede de forma directa.
Entonces aquí un poco más débil el principio de visibilidad ocultación queda un poco más débil.
Ahora, claro, si estuviera en otro package ejemplo herencia, ahí no habría ningún problema.
Por ejemplo, lo vamos a cambiar de pacato, vamos a colocar que esté solamente acá o lo colocamos acá.
Click derecho new package y en vez de p o herencia.
Ejemplo se fijan en la raíz.
Entonces crea un pack hasta acá.
Ejemplo y acá también lo nombramos.
Ejemplo.
Herencia.
Entonces cacería.
Ejemplo.
Se fijan guardo y tengo que mover esta clase.
Entonces la clase ejemplo herencia la corremos acá, ejemplo la arrastramos refactorizar.
Perfecto.
Ahora como es tan distinto РАМКАХ, tenemos que importar.
Por supuesto.
Alumno.
I Profesor.
Pero se fijan, ahora marca error, porque como está, empacas distinto nombre, está protegido.
Si solamente se puede acceder en la herencia, en las clases hijas o bien en la clase que estén dentro
del mismo package.
Acá.
Pero ejemplo herencia ya no está en Emmi, opacas lo movimos entonces, por eso marca error y está bien.
Esa es la idea.
Entonces, cuando está en otro package no hay ningún problema.
Entonces de esa forma ya tenemos que volver a utilizar el set nombre, fijan que sería lo correcto.
Entonces, cuidado con eso.
Es útil colocar por ejemplo protected para que estos atributos se puedan acceder en la clases hijas.
Pero cuidado!
Lo ideal es que la hora de clases que van a utilizar person alumno y profesor como ejemplo herencia
se encuentre en otro paquete para que no tenga accesos a estos atributos protegidos para que no se puede
manipular ni modificar de forma directa.
Bien.
Y vamos a dejar como estaba persona la idea de que este lema protegió posible.
Entonces bueno protected está bien si están empacas distinto, pero Brevet lo vamos a dejar como estaba
Private y todo está bien.
Quería aplicar este tema ahora.
Alumno es del tipo alumno porque es su clase, pero por la herencia también es del tipo persona.
Por ejemplo sicologo acá, persona en el tipo en vez de alumno también funciona perfecto.
Ahora tendré que importarse porque está en otro package.
Entonces cada persona se importa, pero perfecto, funciona exactamente igual.
Persona, alumno ni alumno.
Y es porque cuando una clase hereda de otra, también es del tipo del padre.
En este caso persona se puede utilizar como tipo de dato y puede haber un control de tipo también.
Por ejemplo, con Instance Of, aunque después lo vamos a ver.
Pero qué pasaría con los atributos propios de alumno?
Porque al séptimo persona en la variable ya no tiene el tipo concreto específico del alumno, sino de
persona.
Por lo tanto.
Acá.
Alumno punto set.
Nota No puedo acceder a la nota.
O tampoco lo método.
Jiiiii.
Setter de institución.
No lo puedo acceder.
Se fijan porque si nos vamos alumnos acá a esta clase.
Get institución set institución.
Entonces si quiero invocar este método no me aparece.
Por ejemplo, quiero colocar Instituto Nacional.
No puedo porque el tipo persona y persona no tiene este método.
Entonces bueno, por eso una forma que sea del tipo alumno, su tipo directo de la clase.
O bien podría ser el padre.
Pero tendríamos que hacer un cast del objeto persona al objeto alumno para poder invocar este método.
Y ese cast lo podemos realizar acá en la invocación del método.
Es como forzar hay que alumno para invocar este método, sea del tipo alumno y no persona.
Bueno.
Cómo sería?
Bien, lo primero.
Acá hay que hacer un cast a esta variable.
Entonces acá colocamos paréntesis.
Alumno perfecto, ahí hacemos un cast.
Pero para qué se puede invocar el método?
Tenemos que encerrar en paréntesis el cast.
Entonces encerramos en paréntesis acá y acá se fijan.
Ahí está perfecto.
Set institución y no marca error.
Ya lo puedo asignar, pero haciendo el cast del alumno que es el tipo persona con la clase alumno de
su propio Stasia.
Y ahora si quiero imprimir, por ejemplo, la institución.
Voy a bajar acá.
Bueno, en realidad esto lo dejo acá, acá y acá hoy día.
Alumno punto, nyet institución pero, pero veamos.
Se fijan, me lo permite siempre cuando haga často.
Hoy lo hizo de forma automática, se fijan porque acá lo tiene implementado, pero lo que quería hacer
en verdad era esto.
Alumno de forma directa y no se va a poder.
Se fijan porque del tipo persona pasa lo mismo con el set.
Es un método del tipo alumno y no persona.
Entonces, claro, tengo que hacer el casting acá alumno
y encerramos acá y acá ya si lo puedo embocar.
Entonces levantamos.
André Gumball Instituto Nacional se fijan, también podrían agregar las notas, etc. Pero solamente
quería explicar el tema del cast y también de los tipos que una clase hija, también del tipo de su
clase padre y de cualquier ancestro, por ejemplo.
También esto para el ejemplo no necesario que lo hagan objeto.
También puede ser del tipo Potter, pero Hoggett no tiene un método.
Entonces tengo que hacer cast de persona muy parecido.
Pero acá sería en este caso, bueno, pues ser alumno o persona persona, y ya cerramos acá los paréntesis
y se puede llamar se fija.
Y lo mismo acá.
Pero del tipo aún no, del tipo genérico llega también habría que hacer exactamente lo mismo.
Con qué nombre se fijan?
Hoy lo hace de forma automática, llega a lo mismo, pero bien, era solamente para explicar nada más.
Entonces voy a dejar todo como estaba,
incluso que sea del tipo alumno en vez de persona.
Ven acá!
Esto lo quito, esto lo quito y dejamos alumno a s.
Y para finalizar, voy a quitar esto de acá y lo dejamos con asterisco para que se importen todas las
clases.
Alumno, persona y profesor y la que tengamos después de forma automática quedamos hasta acá.
Continuamos en la siguiente clase.