1
00:00:00,210 --> 00:00:05,430
Bien, qué sucede cuando los modificadores en persona en vez de privé son protected y es lo que quiero

2
00:00:05,430 --> 00:00:06,660
Reiser en esta clase.

3
00:00:07,030 --> 00:00:09,750
Entonces protected vamos a cambiar a protegido.

4
00:00:11,250 --> 00:00:12,270
Y así por cada uno.

5
00:00:20,430 --> 00:00:25,860
Bien, hasta el momento ningún cambio, porque tenemos los que transita el único tema que hay que tener

6
00:00:25,860 --> 00:00:32,820
en cuenta que se pueden acceder de forma directa, siempre y cuando la clase padre persona esté en el

7
00:00:32,820 --> 00:00:36,060
mismo package que la clase alumno y profesor.

8
00:00:36,420 --> 00:00:45,090
Por ejemplo, en vez del set acá lo voy a quitar, voy a quitar esto y acampo colocar Zeth se fijan?

9
00:00:45,570 --> 00:00:47,770
Es decir, no sets, si no de forma directa nombre.

10
00:00:48,760 --> 00:00:50,850
Igual se puede asignar de forma directa.

11
00:00:51,090 --> 00:00:51,660
Por qué?

12
00:00:51,840 --> 00:00:59,010
Bien protected básicamente significa que es protegido en la clase padre y lo pueden acceder también

13
00:00:59,010 --> 00:01:02,530
las clases hijas, pero también funciona muy parecido al de package.

14
00:01:02,760 --> 00:01:04,440
Por lo tanto se llama clase.

15
00:01:04,440 --> 00:01:06,360
Padre e hija están en el mismo paquete.

16
00:01:06,450 --> 00:01:12,150
Se pueden acceder y leer de forma directa y en realidad cualquier clase que esté dentro РАМКАХ por ejemplo

17
00:01:12,480 --> 00:01:15,710
herencia, ejemplo, herencia está enemigo pacato.

18
00:01:15,990 --> 00:01:21,000
Por lo tanto, acá se puede acceder de forma directa al atributo nombre de persona.

19
00:01:21,780 --> 00:01:25,260
Hija se hereda, alumno lo hereda, pero se accede de forma directa.

20
00:01:25,680 --> 00:01:31,080
Entonces aquí un poco más débil el principio de visibilidad ocultación queda un poco más débil.

21
00:01:31,230 --> 00:01:35,640
Ahora, claro, si estuviera en otro package ejemplo herencia, ahí no habría ningún problema.

22
00:01:35,790 --> 00:01:44,310
Por ejemplo, lo vamos a cambiar de pacato, vamos a colocar que esté solamente acá o lo colocamos acá.

23
00:01:44,880 --> 00:01:50,610
Click derecho new package y en vez de p o herencia.

24
00:01:52,870 --> 00:01:55,750
Ejemplo se fijan en la raíz.

25
00:01:56,400 --> 00:01:57,820
Entonces crea un pack hasta acá.

26
00:01:58,000 --> 00:02:00,670
Ejemplo y acá también lo nombramos.

27
00:02:01,060 --> 00:02:01,420
Ejemplo.

28
00:02:01,420 --> 00:02:01,840
Herencia.

29
00:02:01,960 --> 00:02:02,800
Entonces cacería.

30
00:02:03,190 --> 00:02:03,820
Ejemplo.

31
00:02:06,060 --> 00:02:08,640
Se fijan guardo y tengo que mover esta clase.

32
00:02:09,980 --> 00:02:15,440
Entonces la clase ejemplo herencia la corremos acá, ejemplo la arrastramos refactorizar.

33
00:02:16,160 --> 00:02:16,610
Perfecto.

34
00:02:16,700 --> 00:02:18,900
Ahora como es tan distinto РАМКАХ, tenemos que importar.

35
00:02:18,920 --> 00:02:19,640
Por supuesto.

36
00:02:19,700 --> 00:02:20,360
Alumno.

37
00:02:22,530 --> 00:02:23,310
I Profesor.

38
00:02:25,400 --> 00:02:31,170
Pero se fijan, ahora marca error, porque como está, empacas distinto nombre, está protegido.

39
00:02:31,460 --> 00:02:36,890
Si solamente se puede acceder en la herencia, en las clases hijas o bien en la clase que estén dentro

40
00:02:36,890 --> 00:02:37,680
del mismo package.

41
00:02:38,090 --> 00:02:38,450
Acá.

42
00:02:40,010 --> 00:02:46,040
Pero ejemplo herencia ya no está en Emmi, opacas lo movimos entonces, por eso marca error y está bien.

43
00:02:46,310 --> 00:02:46,880
Esa es la idea.

44
00:02:47,210 --> 00:02:49,760
Entonces, cuando está en otro package no hay ningún problema.

45
00:02:50,540 --> 00:02:58,040
Entonces de esa forma ya tenemos que volver a utilizar el set nombre, fijan que sería lo correcto.

46
00:02:58,310 --> 00:02:59,330
Entonces, cuidado con eso.

47
00:02:59,600 --> 00:03:05,990
Es útil colocar por ejemplo protected para que estos atributos se puedan acceder en la clases hijas.

48
00:03:06,530 --> 00:03:07,760
Pero cuidado!

49
00:03:07,850 --> 00:03:14,030
Lo ideal es que la hora de clases que van a utilizar person alumno y profesor como ejemplo herencia

50
00:03:14,060 --> 00:03:20,210
se encuentre en otro paquete para que no tenga accesos a estos atributos protegidos para que no se puede

51
00:03:20,210 --> 00:03:22,820
manipular ni modificar de forma directa.

52
00:03:23,030 --> 00:03:23,360
Bien.

53
00:03:23,520 --> 00:03:27,980
Y vamos a dejar como estaba persona la idea de que este lema protegió posible.

54
00:03:28,010 --> 00:03:35,510
Entonces bueno protected está bien si están empacas distinto, pero Brevet lo vamos a dejar como estaba

55
00:03:35,600 --> 00:03:39,020
Private y todo está bien.

56
00:03:39,530 --> 00:03:41,750
Quería aplicar este tema ahora.

57
00:03:41,870 --> 00:03:47,750
Alumno es del tipo alumno porque es su clase, pero por la herencia también es del tipo persona.

58
00:03:48,110 --> 00:03:54,410
Por ejemplo sicologo acá, persona en el tipo en vez de alumno también funciona perfecto.

59
00:03:55,130 --> 00:03:58,040
Ahora tendré que importarse porque está en otro package.

60
00:03:58,370 --> 00:04:02,780
Entonces cada persona se importa, pero perfecto, funciona exactamente igual.

61
00:04:03,260 --> 00:04:06,560
Persona, alumno ni alumno.

62
00:04:06,770 --> 00:04:12,020
Y es porque cuando una clase hereda de otra, también es del tipo del padre.

63
00:04:12,200 --> 00:04:16,880
En este caso persona se puede utilizar como tipo de dato y puede haber un control de tipo también.

64
00:04:17,120 --> 00:04:20,180
Por ejemplo, con Instance Of, aunque después lo vamos a ver.

65
00:04:20,420 --> 00:04:23,420
Pero qué pasaría con los atributos propios de alumno?

66
00:04:23,540 --> 00:04:30,560
Porque al séptimo persona en la variable ya no tiene el tipo concreto específico del alumno, sino de

67
00:04:30,560 --> 00:04:31,010
persona.

68
00:04:31,250 --> 00:04:31,730
Por lo tanto.

69
00:04:31,730 --> 00:04:32,180
Acá.

70
00:04:32,510 --> 00:04:36,010
Alumno punto set.

71
00:04:36,050 --> 00:04:38,390
Nota No puedo acceder a la nota.

72
00:04:38,540 --> 00:04:39,440
O tampoco lo método.

73
00:04:39,440 --> 00:04:39,830
Jiiiii.

74
00:04:39,830 --> 00:04:41,150
Setter de institución.

75
00:04:41,270 --> 00:04:42,050
No lo puedo acceder.

76
00:04:42,050 --> 00:04:45,260
Se fijan porque si nos vamos alumnos acá a esta clase.

77
00:04:45,710 --> 00:04:47,810
Get institución set institución.

78
00:04:48,710 --> 00:04:52,850
Entonces si quiero invocar este método no me aparece.

79
00:04:53,930 --> 00:04:56,120
Por ejemplo, quiero colocar Instituto Nacional.

80
00:04:59,240 --> 00:05:02,420
No puedo porque el tipo persona y persona no tiene este método.

81
00:05:02,780 --> 00:05:08,900
Entonces bueno, por eso una forma que sea del tipo alumno, su tipo directo de la clase.

82
00:05:09,110 --> 00:05:10,700
O bien podría ser el padre.

83
00:05:10,850 --> 00:05:16,760
Pero tendríamos que hacer un cast del objeto persona al objeto alumno para poder invocar este método.

84
00:05:16,940 --> 00:05:20,150
Y ese cast lo podemos realizar acá en la invocación del método.

85
00:05:20,480 --> 00:05:25,850
Es como forzar hay que alumno para invocar este método, sea del tipo alumno y no persona.

86
00:05:26,120 --> 00:05:26,480
Bueno.

87
00:05:26,540 --> 00:05:27,320
Cómo sería?

88
00:05:27,740 --> 00:05:28,580
Bien, lo primero.

89
00:05:28,670 --> 00:05:31,160
Acá hay que hacer un cast a esta variable.

90
00:05:31,700 --> 00:05:34,040
Entonces acá colocamos paréntesis.

91
00:05:34,610 --> 00:05:38,520
Alumno perfecto, ahí hacemos un cast.

92
00:05:38,690 --> 00:05:40,340
Pero para qué se puede invocar el método?

93
00:05:40,430 --> 00:05:43,280
Tenemos que encerrar en paréntesis el cast.

94
00:05:43,550 --> 00:05:49,430
Entonces encerramos en paréntesis acá y acá se fijan.

95
00:05:49,640 --> 00:05:50,450
Ahí está perfecto.

96
00:05:50,690 --> 00:05:53,600
Set institución y no marca error.

97
00:05:53,780 --> 00:06:00,980
Ya lo puedo asignar, pero haciendo el cast del alumno que es el tipo persona con la clase alumno de

98
00:06:00,980 --> 00:06:01,790
su propio Stasia.

99
00:06:02,540 --> 00:06:05,390
Y ahora si quiero imprimir, por ejemplo, la institución.

100
00:06:06,910 --> 00:06:07,840
Voy a bajar acá.

101
00:06:11,730 --> 00:06:18,570
Bueno, en realidad esto lo dejo acá, acá y acá hoy día.

102
00:06:18,800 --> 00:06:23,370
Alumno punto, nyet institución pero, pero veamos.

103
00:06:25,470 --> 00:06:28,440
Se fijan, me lo permite siempre cuando haga často.

104
00:06:28,890 --> 00:06:33,810
Hoy lo hizo de forma automática, se fijan porque acá lo tiene implementado, pero lo que quería hacer

105
00:06:33,810 --> 00:06:34,860
en verdad era esto.

106
00:06:34,980 --> 00:06:38,460
Alumno de forma directa y no se va a poder.

107
00:06:38,790 --> 00:06:41,540
Se fijan porque del tipo persona pasa lo mismo con el set.

108
00:06:42,180 --> 00:06:45,000
Es un método del tipo alumno y no persona.

109
00:06:45,640 --> 00:06:50,100
Entonces, claro, tengo que hacer el casting acá alumno

110
00:06:53,370 --> 00:06:57,900
y encerramos acá y acá ya si lo puedo embocar.

111
00:06:59,090 --> 00:07:00,170
Entonces levantamos.

112
00:07:02,930 --> 00:07:09,710
André Gumball Instituto Nacional se fijan, también podrían agregar las notas, etc. Pero solamente

113
00:07:09,710 --> 00:07:15,950
quería explicar el tema del cast y también de los tipos que una clase hija, también del tipo de su

114
00:07:15,950 --> 00:07:18,950
clase padre y de cualquier ancestro, por ejemplo.

115
00:07:18,950 --> 00:07:23,520
También esto para el ejemplo no necesario que lo hagan objeto.

116
00:07:24,230 --> 00:07:27,590
También puede ser del tipo Potter, pero Hoggett no tiene un método.

117
00:07:28,130 --> 00:07:31,780
Entonces tengo que hacer cast de persona muy parecido.

118
00:07:32,790 --> 00:07:42,260
Pero acá sería en este caso, bueno, pues ser alumno o persona persona, y ya cerramos acá los paréntesis

119
00:07:43,040 --> 00:07:44,610
y se puede llamar se fija.

120
00:07:45,750 --> 00:07:46,410
Y lo mismo acá.

121
00:07:48,670 --> 00:07:53,290
Pero del tipo aún no, del tipo genérico llega también habría que hacer exactamente lo mismo.

122
00:07:53,590 --> 00:07:56,050
Con qué nombre se fijan?

123
00:07:56,190 --> 00:08:01,420
Hoy lo hace de forma automática, llega a lo mismo, pero bien, era solamente para explicar nada más.

124
00:08:01,630 --> 00:08:03,340
Entonces voy a dejar todo como estaba,

125
00:08:06,400 --> 00:08:09,810
incluso que sea del tipo alumno en vez de persona.

126
00:08:12,870 --> 00:08:13,690
Ven acá!

127
00:08:14,490 --> 00:08:20,700
Esto lo quito, esto lo quito y dejamos alumno a s.

128
00:08:22,320 --> 00:08:27,450
Y para finalizar, voy a quitar esto de acá y lo dejamos con asterisco para que se importen todas las

129
00:08:27,450 --> 00:08:28,050
clases.

130
00:08:28,290 --> 00:08:33,810
Alumno, persona y profesor y la que tengamos después de forma automática quedamos hasta acá.

131
00:08:33,870 --> 00:08:35,770
Continuamos en la siguiente clase.
