1
00:00:01,060 --> 00:00:08,170
Bien vamos a continuar ahora con nuestra clase 3 bien vamos a ir al código de nuestra clase 3 quitamos

2
00:00:08,170 --> 00:00:16,670
estos comentarios y lo particular en esta clase es que vamos a extender de la Clase 1 así que la clase

3
00:00:16,670 --> 00:00:26,130
3 es una clase hija de la Clase 1 bien vamos a crear un constructor de esta clase de la Clase 3 es un

4
00:00:26,130 --> 00:00:33,210
constructor público y vamos a intentar hacer lo mismo que en la Clase 2 en la cual hicimos la prueba

5
00:00:33,570 --> 00:00:38,700
haciendo la llamada a cada uno de los constructores de la Clase 1 vamos a poner algunos comentarios

6
00:00:39,430 --> 00:00:44,760
y también aunque nosotros no agreguemos todas las notas sobre este código ustedes pueden documentarlos

7
00:00:44,760 --> 00:00:50,520
según vamos explicando ya que también la idea no es capturarlos con comentarios sino que ustedes mismos

8
00:00:50,520 --> 00:00:54,060
vayan haciendo las notas respectivas si es que así lo desean.

9
00:00:54,090 --> 00:00:58,100
Así que esa es la llamada al constructor público

10
00:01:04,600 --> 00:01:06,230
esa es la llamada al constructor

11
00:01:09,590 --> 00:01:11,090
protegido o protected

12
00:01:15,990 --> 00:01:23,020
y esa es la llamada al constructor default opacando ya que si se definieron cada uno de estos constructores

13
00:01:23,290 --> 00:01:24,220
en la clase 1

14
00:01:30,120 --> 00:01:33,090
y finalmente la llamada al constructor

15
00:01:35,670 --> 00:01:36,210
privado

16
00:01:43,720 --> 00:01:50,080
así que ahora vamos a modificar nuestra clase 3 lo que vamos a hacer es mandar a llamar los constructores

17
00:01:50,080 --> 00:01:56,200
como hemos comentado muy similar al ejemplo de la clase 2 así que incluso podemos apoyarnos de este

18
00:01:56,200 --> 00:01:57,050
código.

19
00:01:57,220 --> 00:01:58,990
Vamos a hacer cada una de las llamadas

20
00:02:03,540 --> 00:02:10,110
damos formato y podemos observar como empiezan a fallar las pruebas que hemos hecho por ejemplo desde

21
00:02:10,110 --> 00:02:13,950
la clase 2 ya no podemos hacer lo mismo desde la clase 3.

22
00:02:14,310 --> 00:02:19,800
En este caso desde el constructor de la clase 3 podemos mandar a llamar el constructor público pero

23
00:02:19,800 --> 00:02:23,640
ya no podemos crear los objetos como los hicimos desde la clase 2.

24
00:02:23,820 --> 00:02:29,520
En este caso ya no podemos utilizar el constructor protegido ni tampoco el constructor marcado como

25
00:02:29,550 --> 00:02:35,430
default opacas y mucho menos podemos utilizar el constructor privado así que podemos observar que ya

26
00:02:35,430 --> 00:02:41,060
empezamos a tener más restricciones cuando trabajamos desde otra clase sin importar que sea una clase

27
00:02:41,060 --> 00:02:47,610
e hija así que vamos a poner entre comentarios estas llamadas de lo contrario ya no vamos a compilar

28
00:02:47,880 --> 00:02:54,120
nuestro código sin embargo sí tenemos una característica extra que podemos utilizar debido a que la

29
00:02:54,120 --> 00:03:01,080
clase 3 extiende de la clase 1 y esta característica es la siguiente podemos mandar a llamar al constructor

30
00:03:01,170 --> 00:03:07,290
marcado como protegido podemos mandar a llamar a este constructor con dos argumentos desde la clase

31
00:03:07,290 --> 00:03:13,980
3 pero no lo podemos hacer directamente creando objetos sino utilizando la palabra súper así que para

32
00:03:13,980 --> 00:03:20,610
ello podemos utilizar la palabra super y proporcionar dos argumentos para que se manda llamar el constructor

33
00:03:20,610 --> 00:03:29,580
protegido de la clase 1 así que mandamos dos cadenas la cadena 1 cualquier valor la cadena 2.

34
00:03:29,600 --> 00:03:35,360
Sin embargo recordemos que Super debe de ser la primera llamada dentro de un constructor así que esto

35
00:03:35,360 --> 00:03:42,770
debe de ser la primera llamada dentro de este constructor clase 3 y con esto podemos observar que podemos

36
00:03:42,770 --> 00:03:46,360
mandar a llamar al constructor protegido de la clase 1.

37
00:03:46,430 --> 00:03:52,190
Esto debido a que estamos extendiendo la clase 1 y por lo tanto todo lo que se ha marcado como protegido

38
00:03:52,430 --> 00:03:58,010
dentro de la Clase 1 lo podemos acceder sin ningún problema desde otra clase e hija incluso si estamos

39
00:03:58,070 --> 00:04:07,350
en otro paquete así que esa es la característica que podemos hacer uso de los elementos marcados como

40
00:04:07,350 --> 00:04:08,160
protegidos

41
00:04:11,280 --> 00:04:14,280
debido a que estamos haciendo extent de la Clase 1

42
00:04:17,610 --> 00:04:22,470
así que para ello fue que creamos esta prueba de la clase 3 en otro paquete para que pudiéramos poner

43
00:04:22,470 --> 00:04:28,770
a prueba este concepto de llamar a las características de la clase padre todos los elementos marcados

44
00:04:28,770 --> 00:04:32,670
como protegidos.

45
00:04:32,740 --> 00:04:38,950
Ahora vamos a hacer también la prueba como lo hicimos en la Clase 2 podemos apoyarnos de este código

46
00:04:44,200 --> 00:04:50,950
copiamos la función y pegamos el código prueba pero ahora va a ser desde la clase 3

47
00:04:55,540 --> 00:04:59,920
creamos un objeto de la clase 1 y empezamos a llamarlos atributos.

48
00:05:00,010 --> 00:05:05,290
En este caso primero los atributos y posteriormente los métodos podemos observar que el atributo marcado

49
00:05:05,290 --> 00:05:11,270
como público aunque estemos en otra clase y en otro paquete no hay ningún problema podemos seguir utilizándolo.

50
00:05:11,410 --> 00:05:15,870
Pero el atributo marcado como protegido podemos observar que ya no podemos acceder.

51
00:05:16,800 --> 00:05:22,810
Podríamos acceder siempre y cuando ya no utilizáramos la referencia de la Clase 1 sino que debido a

52
00:05:22,810 --> 00:05:29,440
que estamos en una clase hija entonces podríamos acceder pero directamente así que podemos observar

53
00:05:29,440 --> 00:05:35,740
que sí podemos acceder pero sin utilizar la referencia del objeto 1 así que se hace la diferencia en

54
00:05:35,740 --> 00:05:41,820
este caso que estamos en una clase hija de la clase 1 y el atributo definido como package.

55
00:05:41,920 --> 00:05:43,560
También ya no podemos acceder.

56
00:05:43,930 --> 00:05:49,300
Sin importar si utilizamos o no la referencia del objeto debido a que ya estamos en otro paquete y por

57
00:05:49,300 --> 00:05:54,580
lo tanto los atributos que sí podríamos utilizar en la Clase 2 que estábamos dentro del mismo paquete.

58
00:05:54,700 --> 00:06:00,040
En este caso el atributo de opacas ya no lo podemos acceder debido a que ya estamos en otro paquete

59
00:06:01,000 --> 00:06:07,610
así que vamos a poner entre comentarios esa llamada y también la llamada el atributo privado.

60
00:06:07,610 --> 00:06:14,700
Por obvias razones ya no podemos utilizarlo ya estamos en otro paquete y en otra clase bien vamos a

61
00:06:14,700 --> 00:06:19,590
analizar ahora la llamada a los métodos podemos observar que el método público lo podemos seguir llamando

62
00:06:19,590 --> 00:06:21,180
sin ningún problema.

63
00:06:21,270 --> 00:06:27,270
El método protegido de igual manera directamente utilizando la referencia del objeto 1 No podemos mandarlo

64
00:06:27,270 --> 00:06:34,050
a llamar pero si quitamos esta referencia debido a que estamos exteniente de la clase 1 entonces también

65
00:06:34,050 --> 00:06:40,290
podemos acceder a este método protegido de la Clase 1 sin ningún problema debido a que le estamos heredando

66
00:06:40,500 --> 00:06:44,210
de la clase 1 y finalmente el método de opacas.

67
00:06:44,220 --> 00:06:50,100
Tampoco podemos acceder debido a que estamos en otro paquete así que vamos a ponerlo entre comentarios

68
00:06:50,930 --> 00:06:55,980
y también el método privado también ya no podemos acceder debido a que estamos en otra clase y en otro

69
00:06:55,980 --> 00:07:02,670
paquete bien así que vamos a agregar el método main para hacer la prueba de esta clase.

70
00:07:02,670 --> 00:07:07,740
Podemos apoyarnos también del código que agregamos en la Clase 2

71
00:07:13,650 --> 00:07:20,440
importamos la Clase 2 pero en este caso vamos a cambiarlo vamos a crear un objeto de nuestra clase 3

72
00:07:23,080 --> 00:07:31,010
y mandamos a llamar el método prueba desde Clase 3 damos formato

73
00:07:34,070 --> 00:07:37,200
y podemos quitar este impor de la Clase 2 ya que no lo vamos a utilizar

74
00:07:40,890 --> 00:07:46,260
guardamos cambios y ejecutamos y el resultado debe ser el mismo que ya hemos analizado.

75
00:07:46,350 --> 00:07:51,510
Solamente estamos comprobando lo que ya hemos analizado así que estamos mandando llamar el constructor

76
00:07:51,510 --> 00:07:58,420
protegido pero utilizando la palabra super no creando directamente un objeto de tipo protected mandando

77
00:07:58,450 --> 00:08:03,550
llamar el constructor de protected sino utilizando la palabra super que es la forma en que se debe de

78
00:08:03,550 --> 00:08:04,330
realizar.

79
00:08:04,330 --> 00:08:09,760
Cuando estamos extendiendo la clase 1 posteriormente podemos mandar a llamar el constructor vacío sin

80
00:08:09,760 --> 00:08:15,280
ningún problema y posteriormente creamos otro objeto de la clase 1 para poner a prueba cada uno de los

81
00:08:15,280 --> 00:08:22,030
atributos y podemos observar que podemos utilizar solamente el atributo público el atributo protegido

82
00:08:22,270 --> 00:08:28,240
pero sin utilizar una referencia del objeto de la clase 1 sino mandarlo a llamar directamente ese atributo

83
00:08:28,240 --> 00:08:31,920
protegido debido a que lo estamos heredando de la clase 1.

84
00:08:31,960 --> 00:08:38,140
Posteriormente podemos llamar al método público y también al método protegido pero de igual manera sin

85
00:08:38,140 --> 00:08:44,170
utilizar una referencia de la variable de clase 1 sino llamando directamente al método protegido debido

86
00:08:44,200 --> 00:08:49,570
a que lo estamos heredando de la clase 1 hace que esa es otra prueba que estamos haciendo desde la clase

87
00:08:49,570 --> 00:08:55,750
3 la cual extiende de la Clase 1 por lo tanto es una clase hija y estamos en otro paquete en el paquete

88
00:08:55,750 --> 00:09:01,540
2 así que esas son las conclusiones de cada uno de los modificadores de acceso y por último vamos a

89
00:09:01,540 --> 00:09:05,200
analizar la clase 4 pero esto lo vamos a ver en el siguiente vídeo.

90
00:09:05,200 --> 00:09:05,800
Saludos.
