1
00:00:00,210 --> 00:00:03,540
Me continuemos porque en la clase anterior se me olvidó ver un detalle.

2
00:00:03,630 --> 00:00:05,100
Sí, también es bueno que lo conozcan.

3
00:00:05,160 --> 00:00:11,100
Bueno, esta implementación con el extends number o está en cliente, por ejemplo, voy a tomar este

4
00:00:11,100 --> 00:00:16,020
acá con los clientes, lo voy a copiar y lo voy a pegar acá, acá, justamente arriba.

5
00:00:16,560 --> 00:00:17,130
Perfecto.

6
00:00:17,430 --> 00:00:19,170
Lo pego bien.

7
00:00:19,290 --> 00:00:23,190
Voy a tratar de implementar una sobrecarga, pero en realidad sería exactamente lo mismo.

8
00:00:23,400 --> 00:00:27,210
Sería otra forma de implementar una misma firma de método.

9
00:00:27,420 --> 00:00:27,750
Qué pasa?

10
00:00:27,790 --> 00:00:31,230
Bueno, si quito el genérico, simplemente lo eliminamos.

11
00:00:31,410 --> 00:00:32,340
Voy a quitar esto.

12
00:00:32,910 --> 00:00:36,990
Solamente dejamos al ratón, pero el tipo cliente, entonces cliente.

13
00:00:37,200 --> 00:00:39,720
Y por supuesto, acá recibe clientes.

14
00:00:39,960 --> 00:00:46,290
Un arreglo cliente, un arreglo cliente perfecto marca un error, sino que este método no lo tenemos

15
00:00:46,290 --> 00:00:53,340
definido, pero sería muy equivalente hasta acá, ya que acá solamente puede recibir por argumento y

16
00:00:53,340 --> 00:00:57,750
manejar tipos que sean cliente o subtipos y acá también.

17
00:00:58,660 --> 00:01:04,210
Independiente simplemente o no, la interfaz, compárala de hecho, solamente por ahora no es necesario

18
00:01:04,210 --> 00:01:08,140
que lo hagan, pero por ahora voy a quitar el comparable y el ant.

19
00:01:08,830 --> 00:01:10,480
Estos dos son equivalentes.

20
00:01:10,870 --> 00:01:16,270
De hecho, este de acá, cuando se compila por debajo en boycott, queda como éste.

21
00:01:16,420 --> 00:01:17,650
Queda exactamente igual.

22
00:01:17,770 --> 00:01:22,390
Una equivalencia por detrás de escena se genera este método se fijen.

23
00:01:22,450 --> 00:01:26,230
Entonces este método ya está implementado, tiene la misma firma que este de acá.

24
00:01:26,800 --> 00:01:27,940
De hecho, si lo comentamos.

25
00:01:30,350 --> 00:01:32,090
Se fijan, desaparece el error.

26
00:01:32,270 --> 00:01:36,500
Ahora, claro, acá acepta cliente un arreglo cliente.

27
00:01:36,950 --> 00:01:37,670
Qué estaba pasando?

28
00:01:37,730 --> 00:01:44,150
Un arreglo del tipo cliente premium se provee en el argumento quién te premio, que está perfecto porque

29
00:01:44,150 --> 00:01:45,980
es un tipo de cliente.

30
00:01:46,190 --> 00:01:52,640
Pero el problema es que acá está retornando un tipo genérico, un list@ de cliente y no una clase hija.

31
00:01:52,760 --> 00:01:56,240
Entonces acá para que funcione, simplemente tendremos que quitar esto.

32
00:01:57,740 --> 00:02:03,020
Es decir, pasa un cliente pre-mio, que es un tipo de cliente, pero lo que devuelve es un tipo más

33
00:02:03,020 --> 00:02:08,540
genérico, una lista cliente, ya que este es el tipo que devuelve este método y no un cliente premium.

34
00:02:08,570 --> 00:02:09,920
Pero bueno, se fijan.

35
00:02:10,010 --> 00:02:12,470
El tema es que ambos métodos son muy parecidos.

36
00:02:12,680 --> 00:02:16,820
Bueno, esto acá lo deja como estaba con cliente premium independiente.

37
00:02:16,820 --> 00:02:19,340
El error, porque al final vamos a dejar este.

38
00:02:20,240 --> 00:02:25,700
Este también tiene la ventaja de que lo que devuelva el tipo de dato puede ser no solamente un cliente,

39
00:02:25,760 --> 00:02:28,040
sino también un tipo hijo.

40
00:02:28,430 --> 00:02:28,970
Se fijan?

41
00:02:30,150 --> 00:02:32,010
Ya Yassin, pero equivalente.

42
00:02:32,190 --> 00:02:33,540
De hecho, no se puede sobrecargar.

43
00:02:33,630 --> 00:02:40,500
Bien, veamos otro ejemplo relacionado a lo genérico o genérico que se le conoce como comodin o wild

44
00:02:40,500 --> 00:02:40,810
card.

45
00:02:41,130 --> 00:02:45,960
Bueno, los comodines solamente se pueden utilizar en listas, por ejemplo, del tipo list.

46
00:02:46,080 --> 00:02:47,490
Bueno, mejor veamos un ejemplo.

47
00:02:48,030 --> 00:02:52,510
Vamos a tener un método por acá public estático.

48
00:02:52,800 --> 00:02:53,740
Bien, voy.

49
00:02:54,300 --> 00:02:56,430
Por qué solamente va a imprimir un dato nada más?

50
00:02:56,520 --> 00:02:57,430
No retorna nada.

51
00:02:57,600 --> 00:03:00,660
Y el método se va a llamar imprimir clientes.

52
00:03:01,740 --> 00:03:02,430
Y qué va a recibir?

53
00:03:02,520 --> 00:03:03,270
Una lista?

54
00:03:03,840 --> 00:03:05,700
Un list de clientes.

55
00:03:08,220 --> 00:03:10,670
Clientes entonces?

56
00:03:10,680 --> 00:03:11,460
Clientes.

57
00:03:11,550 --> 00:03:12,340
Punto.

58
00:03:12,360 --> 00:03:16,180
For each cesta en punto out.

59
00:03:17,340 --> 00:03:18,510
Y el primer perfecto.

60
00:03:19,900 --> 00:03:24,160
Ok, entonces acaso acepta cliente una lista de clientes, nada más.

61
00:03:24,700 --> 00:03:25,600
Entonces vamos a ver.

62
00:03:26,920 --> 00:03:28,200
Imprimir clientes.

63
00:03:28,310 --> 00:03:34,540
Íbamos a pasar una lista cliente, por ejemplo clientes tenemos clientes, recuerden que clientes es

64
00:03:34,540 --> 00:03:39,270
el primero, un ArrayList de clientes está perfecto que tiene Andre Guzmán.

65
00:03:39,760 --> 00:03:43,100
Se puede imprimir ningún problema, pero también quiere imprimir.

66
00:03:43,360 --> 00:03:46,720
Por ejemplo, esta acá clientelista.

67
00:03:46,810 --> 00:03:52,390
La conversión cliente listas también se pueden?

68
00:03:52,480 --> 00:03:54,040
Claro, porque es un tipo de cliente.

69
00:03:54,610 --> 00:04:00,190
Ahora quiero imprimir clientes, pero quiero imprimir los premio clientes.

70
00:04:01,520 --> 00:04:02,660
Premio y no puedo.

71
00:04:03,020 --> 00:04:09,530
Porque claro, es una lista de tipo de cliente, pero hijos no es el tipo cliente padre, sino es una

72
00:04:09,530 --> 00:04:10,700
implementación de cliente.

73
00:04:10,790 --> 00:04:12,230
Por lo tanto, no la acepta.

74
00:04:12,290 --> 00:04:17,750
Es decir, acá no podemos imprimir cualquier tipo de cliente acá, ni su descendencia.

75
00:04:18,050 --> 00:04:19,520
Solamente los clientes.

76
00:04:19,820 --> 00:04:22,280
La clase cliente, pero no su descendencia.

77
00:04:22,490 --> 00:04:28,370
Porque por ejemplo, bueno, un cliente premium es un tipo de cliente, está perfecto, pero la lista

78
00:04:28,370 --> 00:04:30,920
de clientes premium no es su clase.

79
00:04:31,010 --> 00:04:34,250
Es decir, no hereda de una lista de clientes.

80
00:04:34,340 --> 00:04:35,480
Es decir, son cosa distinta.

81
00:04:35,570 --> 00:04:38,150
Cliente premio es un tipo de cliente.

82
00:04:38,250 --> 00:04:44,570
Si la idea de cliente, pero la lista no una lista de clientes premium no es hija de una lista de clientes

83
00:04:44,660 --> 00:04:49,910
y por eso no es compatible decir por eso no se puede pasar una lista de clientes premium como si fuera

84
00:04:49,910 --> 00:04:50,720
una lista de cliente.

85
00:04:50,840 --> 00:04:54,620
Estamos trabajando con listas, no con el objeto de cliente.

86
00:04:54,740 --> 00:04:55,220
Se fijan.

87
00:04:55,310 --> 00:04:57,200
Hoy es distinto y eso hay que tener claro.

88
00:04:57,290 --> 00:05:02,840
Una lista de una clase hija no es una subclase de una lista de una clase padres para nada.

89
00:05:02,960 --> 00:05:09,110
Entonces, cómo lo podríamos hacer si quisiera que pasase por acá, se imprimiera cualquier tipo de

90
00:05:09,110 --> 00:05:15,320
listas de cliente, ya sea un cliente o un cliente premium, es decir, su descendencia, también las

91
00:05:15,320 --> 00:05:16,730
clases hijas de cliente.

92
00:05:16,880 --> 00:05:24,080
Bueno, utilizando como ven y como acá colocamos en el list en el operador diamante, acá un signo pregunta

93
00:05:25,190 --> 00:05:28,070
extends Jassi.

94
00:05:28,370 --> 00:05:28,880
Se fijan?

95
00:05:29,000 --> 00:05:34,670
Entonces acá podemos pasar cualquier tipo de cliente, ya sea cliente o cliente premium o cualquier

96
00:05:34,670 --> 00:05:35,180
clase hija.

97
00:05:35,840 --> 00:05:38,180
Y ahora sí que sí se puede imprimir cualquiera.

98
00:05:38,300 --> 00:05:40,790
Clientes clientelista y cliente premium.

99
00:05:40,790 --> 00:05:42,200
Listo, vamos a probar.

100
00:05:44,520 --> 00:05:52,950
De Kalo tenemos clientes Andrés, clientes, listas, Lucy y en 3 y Premium Paco, nada más continuamos

101
00:05:53,070 --> 00:05:54,010
en la siguiente clase.
