Saltar navegación

Ejemplo Herencia 1.2 - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 14 de enero de 2025 por Stefano C.

9 visualizaciones

Descargar la transcripción

Voy a volver esta cosa, eh. Vale. 00:00:00
Quería hacer esto yo. 00:00:04
No lo hace más. 00:00:07
Más que grande así no lo puede hacer. 00:00:08
Así. 00:00:11
Esto. 00:00:12
¿Por qué? 00:00:13
¿Existe edad? Sí. ¿Por qué existe edad? 00:00:26
Porque estendo ser vivo 00:00:33
y la pillo de ser vivo. 00:00:35
Perfecto. Edad existe. 00:00:37
¿Por qué se enfada? 00:00:38
Porque edad es private. 00:00:41
¿Vale? Private. 00:00:43
Como se diga. 00:00:44
entonces no puedo acceder directamente a edad, tendré que hacer super, punto edad, misma cosa. 00:00:45
Ahora, ¿qué es este super? Está llamando a este objeto, pero considerándolo no como planta, sino como ser vivo. 00:00:59
Pero igualmente estoy accediendo a una variable que no está definida en esta clase 00:01:20
Y que es privada para ser vivo 00:01:25
Esta variable aquí es accesible solo dentro de ser vivo 00:01:28
Por lo tanto, no puedo 00:01:32
Entonces, ¿cómo lo hago? 00:01:34
¿Como edad? ¿Por? 00:01:50
No, never in the life 00:01:54
Tendré que tener un setedad 00:01:55
Lo tengo el setedad 00:02:01
00:02:02
Uso este 00:02:03
Setedad 00:02:04
A edad 00:02:12
Ahora, en principio, así como lo hemos hecho, no sirve de nada, pero este set de edad podría estar comprobando que esta edad es un valor válido. 00:02:15
Y ahora le puedo poner que la edad de esta planta es menos 35 años. 00:02:26
Sin embargo, aquí podría poner que si la edad es menor que cero, entonces ponle cero, si la edad es mayor... 00:02:31
Sí, pero bueno. 00:02:38
Ahora, esto me funciona 00:02:39
Y si le pongo this.delante, funciona 00:02:44
Y si le pongo super.delante, funciona 00:02:53
¿Por qué? 00:02:58
Porque setEdad, este método aquí, es definido en ser vivo 00:03:28
Entonces, si lo uso así 00:03:31
Existe porque lo llama 00:03:35
Porque al heredar de ser vivo 00:03:38
Él también tiene acceso a este de aquí 00:03:41
Además es público 00:03:43
Si lo llamo así 00:03:45
Le estoy diciendo, oye mira, usa sobre este objeto 00:03:47
Este método 00:03:50
Y es correcto porque este método 00:03:52
Es de tipo planta 00:03:54
Que es un ser vivo 00:03:55
Y que entonces tiene este método 00:03:58
Si lo uso así 00:03:59
Misma cosa 00:04:01
Estoy utilizando este setEdad 00:04:03
Pero 00:04:06
En vez de utilizarlo sobre un objeto 00:04:08
De tipo planta 00:04:10
Lo estoy usando sobre este objeto considerándolo un ser vivo 00:04:11
Pero no importa porque el ser vivo tiene estos métodos 00:04:15
Entonces, en los tres casos se puede utilizar 00:04:19
¿Sí? 00:04:22
Ya está 00:04:25
Entonces, ahora me he creado una planta con todas estas características 00:04:26
Bla, bla, bla, bla, bla, bla 00:04:29
Métodos 00:04:30
Entonces 00:04:34
Métodos propios de una planta 00:04:36
Hemos dicho hacer fotosíntesis 00:04:40
Public 00:04:42
photosynthesizar que lo que hace claramente es todas las plantas hacen fotosíntesis todas 00:04:47
nuestras plantas hacen fotosíntesis, que es fotosintetización, ¿vale? Perfecto. 00:05:11
Más. Ahora, esto nos interesa relativamente simplemente para tener un método que sea propio de planta 00:05:25
y que no exista en ser vivo, ¿vale? Ahora, lo que nos interesa también hacer es jugar un poco con el overriding. 00:05:32
¿Sí? Entonces vamos a overridear el comer, ¿sí? Por ejemplo. 00:05:41
Entonces, ahora nosotros hacemos un public void comer, ¿sí? 00:05:54
Y lo que hace ahora es come como una planta, ¿sí? 00:06:03
¿Cómo come la planta? 00:06:06
Adquiero sales minerales desde mis raíces. 00:06:14
Ahora, la idea es que cuando llamaré comer sobre un ser vivo, me dirá come ñam ñam. 00:06:23
Cuando llamo comer sobre un objeto planta, me debería decir adquiero sales minerales desde mis raíces. 00:06:30
¿Sí? 00:06:39
Entonces, es completamente sobrescrito el método, hace una cosa completamente distinta. 00:06:42
Para el otro comer, en vez, comer con string algo, vamos a hacer una cosa un poquito distinta. 00:06:53
Quiero que escriba también esto, pero quiero que antes me haga lo mismo que hace este de aquí. 00:07:04
O sea, que diga que mi especie está comiendo este algo ñam ñam, que luego le pasaré suelo, por ejemplo, o agua. 00:07:11
Y después diga también que adquiere sales minerales desde sus raíces. 00:07:19
¿Cómo lo hago? 00:07:25
Opción número uno. 00:07:28
Pillo esto y lo copio debajo. 00:07:30
Lo hago así. 00:07:34
Funciona. 00:07:35
Muy bien. 00:07:38
No funciona. 00:07:39
¿Por qué no funciona? 00:07:40
No tengo problema. 00:07:44
No tengo acceso a esa especie. 00:07:45
Entonces, ¿cómo lo hago? 00:07:46
Así. Esto me está diciendo, usa este objeto, this, pero no como esta clase, como si fuera de la clase superior, o sea, ser vivo. 00:07:48
Y sobre este objeto, que ahora es de tipo ser vivo, o considéramelo de tipo ser vivo, llama comer algo. 00:08:08
Entonces, no estoy llamando esto, porque esto es el comer algo de esta clase. Es el comer algo de esta clase. Es decir, esto. Me escribe lo que me tiene que escribir y después vuelvo aquí. 00:08:16
Y aquí, además de haber hecho lo que hace mi clase superior, lo que hace un ser vivo, hago también lo que hace una planta. 00:08:31
¿Se entiende? 00:08:42
Entonces, aquí estoy totalmente desvinculado de lo que es la otra clase. 00:08:43
Aquí es sobrescrito completamente el otro método. El otro método no se usa. 00:08:53
Aquí estoy sobreescribiendo el método pero diciendo 00:08:58
Tú haz lo que hacen todos los seres vivientes 00:09:01
Y después haces algo más, más específico para esto 00:09:04
Aquí estoy sobreescribiendo, aquí estoy extendiendo lo que hace el otro 00:09:08
¿Se entiende la diferencia? ¿Dudas? 00:09:12
Morir en vez lo dejo igual 00:09:24
Lo dejo directamente solo en la clase ser vivo 00:09:27
Si os estáis fijando, estoy intentando hacer todas las varias posibilidades para que luego, cuando ahora lo use, pueda jugar con ellos. 00:09:31
Tengo un método que está solo en ser vivo, que es morir. 00:09:40
Un método que está solo en planta, que es fotosintetizar. 00:09:45
Y dos métodos que están en los dos sitios, o sea, se sobrescriben. 00:09:54
Uno que sobrescribe completamente 00:09:59
Y uno que reutiliza el primero 00:10:02
Y luego lo extiende 00:10:04
Cuatro casos distintos 00:10:05
¿Sí? 00:10:07
Vale 00:10:09
Esto es 00:10:10
¿Qué estoy haciendo aquí? 00:10:13
Overreading 00:10:17
¿Vale? 00:10:18
Sobrescribir 00:10:18
¿Cómo? 00:10:19
¿Podría hacer algo de shadowing? 00:10:22
Para hacer una 00:10:32
Una opción 00:10:33
Antes nosotros hemos dicho 00:10:35
La edad de esta aquí 00:10:37
Se te da de cosas por el estilo 00:10:38
Yo podría haber hecho un shadowing aquí de la edad, o sea, haber ocultado la edad del ser vivo y haber creado aquí otra vez int edad que me habría ocultado esta edad de aquí. 00:10:40
Y entonces habría podido poner aquí directamente this.edad es igual a edad sin tener que poner esto. 00:11:02
Ahora lo puedo hacer porque no estoy accediendo a esta edad de aquí, que es privada para esta clase, 00:11:16
más estoy accediendo a esta edad de aquí. 00:11:23
Lo dejamos así porque así luego vemos un poquito de la... 00:11:28
Hacemos algo con esta edad. 00:11:33
Nos paramos por ahora aquí, en el sentido de que tenemos solo dos niveles, planta y ser vivos. 00:11:36
Vamos a hacer un main donde creamos plantas, creamos ser vivos, hacemos ejemplos, llamamos 00:11:42
y vemos qué pasa. Tenemos estos dos ejemplos de ser vivos y plantas, vamos a utilizarlos 00:11:47
para ver qué logramos. Entonces me hago una clase main, donde dentro pongo un main. 00:11:53
Y ahora aquí voy a jugar con lo que tengo. ¿Qué tengo? Tengo plantas y tengo ser vivos. 00:12:07
Me creo un ser vivo, new ser vivo, le tengo que dar una especie. ¿Qué especie le doy? 00:12:12
La especie, ya hemos dicho su nombre, era su nombre en plan especie, un Cosus ferocis, que es, no lo sabemos. 00:12:30
Y también una planta, planta, es igual a new planta de Pinus pinea, esto me lo sé. 00:12:47
Pero además esto recibe más cosas, recibe la especie, recibe la altura, recibe, si, que era el otro, era un buleano, buleano hace siempre verde, true, y la edad, si, ok. 00:12:59
Entonces ahora yo tengo un ser vivo 00:13:32
Y una planta 00:13:35
Vamos a ver que puedo hacer con ellos 00:13:36
Entonces puedo hacer comer un ser vivo 00:13:38
sv.comer 00:13:41
¿Qué hará esto? 00:13:44
Me dice que el 00:13:51
Cosus ferocis 00:13:52
Está comiendo 00:13:54
Está carácter demoníaco 00:13:55
Lo sabéis 00:14:00
Vale 00:14:12
Si le pongo aquí 00:14:14
¿Qué comen los 00:14:17
Cossus ferocius? 00:14:20
Claramente gominolas. 00:14:32
Perfecto. 00:14:38
Cossus ferocius está comiendo 00:14:39
gominolas. 00:14:42
¿Sí? 00:14:43
¿Esto es comer de quién es? 00:14:47
De ser vivo. 00:14:52
¿Sí? Va, fenomenal. 00:14:54
Ahora vamos a comer la planta. 00:14:56
Adquiero sal y minerales 00:15:06
desde mis raíces. 00:15:07
Este de aquí lo está usando 00:15:08
como comer, fijaos que 00:15:11
es el mismo método 00:15:13
pero este de aquí 00:15:15
ahora se aplica 00:15:17
a la 00:15:18
planta 00:15:20
y si yo le digo aquí 00:15:23
gominolas 00:15:25
también 00:15:28
bueno, cambiamos para que se vea que son distintos 00:15:28
esto suelo 00:15:32
esto es 00:15:33
el comer 00:15:39
con un parámetro 00:15:42
de ser vivo 00:15:44
Esto es comer con un parámetro de la planta 00:15:46
Fijaos que la primera cosa que hace es llamar el comer con algo 00:15:51
Con un parámetro del ser vivo 00:15:56
Es esta cosa aquí 00:16:00
Y luego a continuación añadía la frase esta de aquí 00:16:01
De adquiero sales minerales 00:16:06
Entonces este de aquí es el segundo 00:16:08
Esta es la primera llamada que hace esta cosa aquí 00:16:13
La segunda llamada tiene dos líneas 00:16:38
Porque la primera línea se escribe aquí 00:16:41
Y la segunda línea se escribe aquí 00:16:44
Esta es la llamada al verbo 00:16:51
¿Se entiende? ¿Estamos todos de acuerdo? 00:16:53
¿Sí? 00:16:56
Dudas 00:16:58
Ahora, vamos al 3 00:16:59
Tercera prueba 00:17:02
¿Vale? 00:17:10
Si yo digo 00:17:11
Siso 00:17:16
SV.edad 00:17:18
Funciona 00:17:22
¿Por qué no? 00:17:24
¿Por qué no? 00:17:33
Porque edad es privado 00:17:35
No puede acceder a edad de un ser vivo 00:17:36
Así 00:17:39
Tendré que usar 00:17:40
Getedad 00:17:41
¿Sí? 00:17:42
Aquí 00:17:47
La edad de mi ser vivo 00:17:47
Porque por defecto le daba cero y no la he cambiado 00:17:49
Correcto 00:17:51
Y si ahora hago lo mismo, pero con mi planta, no hace falta esto, ¿no? 00:17:53
Sí, no, esto sí. 00:18:10
PL.edad, ¿por qué esto funciona? 00:18:13
Este también tiene valor. 00:18:33
Pero si yo hago así, no me deja. 00:18:35
Tengo que hacer así. 00:18:45
¿Por qué aquí me deja y aquí no? 00:18:46
Os doy una pista. 00:18:53
La proyecta una planta. 00:18:56
Es algo complejo. 00:18:58
Como pista. 00:19:07
¿Qué proyecta una planta, un árbol? 00:19:08
¿Qué proyecta? 00:19:11
Exacto, shadowing. 00:19:15
¿Os acordáis? 00:19:18
Que en planta ya había vuelto a poner edad. 00:19:20
Y esta edad no es privada. 00:19:24
Entonces, desde planta puedo acceder tranquilamente a edad desde fuera. 00:19:27
Estaré accediendo a la edad de la planta. 00:19:33
Y si quisiera acceder a la edad de la planta, pero como ser vivo, podría. 00:19:37
Píllame PL, que es una planta. 00:20:11
Trátamela como si fuera un ser vivo y accede a su variable edad. 00:20:15
¿Se entiende? 00:20:22
Pero explota, porque ahora esta es privada. 00:20:24
Esta es la edad de la planta como si fuera un ser vivo. 00:20:43
¿Se entiende? 00:20:52
Esta cosa de aquí ha ocultado la edad del ser vivo 00:20:52
Entonces si yo accedo directamente a la edad de la planta 00:21:01
Me va a pillar su edad 00:21:05
Que como no es privada, puedo hacer lo que me da la gana con ella 00:21:07
Si quisiera, usando este objeto, un objeto planta 00:21:10
Acceder a uno de sus atributos de la clase superior 00:21:16
lo puedo hacer haciendo un casting explícito 00:21:24
pillo la planta 00:21:27
hago un casting explícito 00:21:28
a un ser vivo 00:21:30
entonces ahora esta cosa de aquí 00:21:31
es un ser vivo 00:21:34
y le digo accede 00:21:35
pero como en ser vivo el punto edad 00:21:37
no puede acceder directamente porque 00:21:40
el punto edad me daría un acceso a una variable 00:21:42
privada y no puedo 00:21:44
entonces uso el método que me permite 00:21:46
leerla 00:21:48
que es el getEdad 00:21:50
se entiende aquí este es un ejemplo de shadowing de cómo se usa los shadowing 00:21:50
de cómo se accede a las variables que han sido ocultadas 00:22:00
está claro que si yo quito este método de aquí ya no puedo acceder a este 00:22:04
valor puede acceder sólo a este si o no cuarta prueba que probamos hemos 00:22:09
probado estos métodos aquí hemos probado esto sería una prueba sobre 00:22:29
overriding, esto es una prueba 00:22:35
sobre 00:22:38
el otro 00:22:39
vale, la pregunta 00:22:42
que podía decir es esta 00:22:44
una pregunta que me podía decir es esta, vale, hemos dicho 00:22:46
que sv.comer 00:22:48
da una cosa 00:22:50
entonces me asumo 00:22:52
que si yo hago 00:22:54
ser vivo 00:22:56
tpl.comer 00:22:59
estas dos cosas darán 00:23:07
lo mismo. Comer decía voy comiendo ñam. Entonces si yo lo llamo sobre un ser vivo 00:23:11
me dirá voy comiendo ñam. Y si yo pillo una planta, la trato como un ser vivo y le 00:23:19
digo comer, me dirá ñam. ¿Por qué? Porque en el shadowing esto funciona. Pero en el 00:23:27
overriding, reading, no lo sé, lo que se hace no es tener en cuenta el tipo de la referencia, 00:23:43
más gana, o sea, el tipo de donde voy a buscar la implementación del método comer es el 00:23:54
tipo de la instancia. Y no obstante yo aquí tenga un objeto que te diga, sí, no, más 00:24:03
Trátamelo como referencia, como un ser vivo. 00:24:09
En realidad la instancia es una planta. 00:24:12
Entonces me usará el método de la planta. 00:24:15
¿Dudas? ¿Preguntas hasta aquí? 00:24:24
A ver, ¿qué otras cosas podemos probar? 00:24:36
Podemos probar los instance of. 00:24:38
A ver, sv, instance of, ser vivo. 00:24:39
Estas cuatro cosas 00:24:57
¿Qué me van a poner? 00:25:26
¿Qué saldrá de aquí? 00:25:32
¿Verdadero, verdadero, falso, falso? 00:25:33
¿Falso, vero, vero, falso, vero? 00:25:35
¿Qué sale? 00:25:37
¿De aquí qué sale? 00:25:39
No sé, decídmelo vosotros 00:26:00
¿SV es una instancia de ser vivo? 00:26:01
¿Quién dice true? 00:26:06
¿Quién dice falso? 00:26:08
los demás que dicen 00:26:12
porque han contestado 00:26:19
literalmente tres personas 00:26:21
uno dice 00:26:23
verdadero y dos dicen falso 00:26:25
verdadero 00:26:27
¿cuántos? 00:26:33
ahora de repente 00:26:37
soy siete 00:26:38
esto 00:26:39
¿quien dice falso? 00:26:42
¿quien dice verdadero? 00:26:48
tenemos un verdadero 00:26:51
cinco falsos 00:26:52
Esto 00:26:54
Bueno, pongamos T 00:26:56
True 00:26:58
¿Quién dice que esto es true? 00:26:59
¿Quién dice que esto es false? 00:27:04
Nadie 00:27:07
Esto es true seguro 00:27:08
¿Y esto? 00:27:09
¿Quién dice true? 00:27:14
¿Quién dice false? 00:27:18
True seguro 00:27:21
Esto es complejo de entender 00:27:22
Pero esto es súper fácil 00:27:25
Vamos a verlo 00:27:26
O sea, que aquí me espero un FFTT. 00:27:28
No, TFTT. 00:27:31
TFTT. 00:27:38
¿SV es una instancia de ser vivo? 00:27:42
¡Claro! 00:27:45
Fíjate. 00:27:46
New ser vivo. 00:27:47
¿Sí? 00:27:51
Vale. 00:27:52
¿Es una instancia de planta? 00:27:53
No. 00:27:55
Porque una planta es un ser vivo. 00:27:56
Pero ser vivo no es un planta. 00:27:59
¿Sí? 00:28:03
¿Sí? Es planta que extiende ser vivo, ¿no? Ser vivo que extiende planta. 00:28:03
Vale. 00:28:09
PL es un ser vivo. Esto quizás es el más complejo de todos. 00:28:12
Porque, no, PL es un new planta. 00:28:16
Pero como planta es un ser vivo, sí también. 00:28:21
Si os acordáis los cuadrados, es un cuadrado externo que es una planta, pero dentro tiene un ser vivo. 00:28:24
Cada planta tiene un ser vivo dentro. 00:28:30
¿Sí? 00:28:34
¿Se entiende? 00:28:35
Y entonces, este es verdadero, falso, verdadero, verdadero. 00:28:37
Y usando este de aquí, puedo saber si una variable que no sé exactamente qué es, 00:28:43
pues puedo saber si es un ser vivo, una planta, un objeto, un cocodrilo. 00:28:49
Y si aquí pongo object, esto es un objeto. 00:28:55
Y esto es un object. 00:29:10
¿Sí? 00:29:17
dudas, preguntas 00:29:20
vale 00:29:23
sigamos, que más cosas podemos 00:29:26
probar aquí, overriding, overloading 00:29:29
lo hemos visto 00:29:31
hemos visto los shadowing 00:29:32
constructores, más o menos 00:29:34
hemos visto todo lo que hemos visto ahora en esta prueba 00:29:37
vale 00:29:39
en estos últimos 10 minutos 00:29:40
vamos a crear 00:29:43
en vez de crear algo por debajo 00:29:47
de planta, creamos algo 00:29:49
al lado de planta, vale, animal 00:29:51
animal 00:29:52
extende también 00:29:55
ser vivo 00:29:56
public 00:30:00
el animal 00:30:06
me lo invento 00:30:09
tiene string sonido 00:30:11
public 00:30:13
animal 00:30:19
especie 00:30:23
string sonido 00:30:25
lo que hace es 00:30:32
super de especie 00:30:36
para crear el set vivo 00:30:40
y luego 00:30:44
dis.sonido es igual a 00:30:45
sonido, tiene un método 00:30:48
especial que es public 00:30:52
void 00:30:53
sonar 00:30:56
que lo que hace 00:30:58
es eso 00:31:01
digo 00:31:02
más sonido 00:31:05
vale 00:31:08
podría hacer, cambiar 00:31:13
el comer, pero lo dejo 00:31:15
lo dejo el otro, vale 00:31:17
ok, tenemos más o menos 00:31:19
claro 00:31:23
donde estamos 00:31:23
me hago otro main 00:31:26
y atención a esto 00:31:34
porque esto será vuestro futuro 00:31:37
me hago 00:31:39
un array 00:31:41
de seres vivos 00:31:46
que es igual a new 00:31:52
ser vivo 00:31:55
Cuatro 00:31:58
Y en seres vivos 00:32:00
De cero 00:32:08
Pongo claramente una planta 00:32:10
Ah, porque tengo que ponerle otra cosa 00:32:30
La altura 00:32:32
El... 00:32:33
¿Qué más tiene? 00:32:36
Tenía la edad al final 00:32:40
¿Y aquí qué tenía? 00:32:41
Ah, falso 00:32:44
00:32:45
En seres vivos de uno 00:32:47
Pongo claramente un animal 00:32:55
Lupus 00:32:58
Familiaris 00:33:03
Y coma 00:33:05
¿Cómo hace? 00:33:10
Bau 00:33:12
¿Sí? 00:33:12
¿Entendéis qué estoy haciendo? 00:33:16
Y no os sorprendéis de esta cosa 00:33:18
¿Veis una red de seres vivos que dentro no estoy metiendo ni un ser vivo? 00:33:20
seres vivos, hagamos otros dos seres vivos 00:33:26
esto es, no es un pino espinea 00:33:35
sino un árbol 00:33:41
arbóreus 00:33:43
y este de aquí es 00:33:46
¿cuál es el gato? 00:33:51
feli, félix, fél, fél, algo así 00:33:57
gatos 00:33:59
bonitos 00:34:01
que hace claramente 00:34:03
ahora la cosa interesante de esto 00:34:08
es que yo me he hecho un array 00:34:12
de seres vivos 00:34:14
y todos estos son seres vivos 00:34:16
por lo tanto 00:34:18
pueden estar allí 00:34:26
y si yo ahora hago un 00:34:27
for 00:34:30
ser vivo 00:34:31
x dos punto 00:34:36
seres vivos 00:34:38
y le digo 00:34:40
x punto comer 00:34:44
¿esto funciona o no? 00:34:46
Fijaos que las plantas comen como plantas y los animales comen como seres vivos. 00:35:02
O sea, que en automático, sin saber si lo que estoy pillando es una planta o un animal, 00:35:16
lo que está haciendo Java es ir a mirar no la referencia que son seres vivos, 00:35:24
Pero mirando la instancia, y en base a la instancia usa el método comer propio de la clase. 00:35:32
Entonces, cuando es una planta, va a usar el método comer de la planta, este método comer. 00:35:46
Sin embargo, cuando es un animal, como en animal no es definido el método comer, lo tirará de ser vivo. 00:35:54
O sea, esto. Comer. Si ahora me voy a animal y sobreescribo comer, diciendo sonido más ñam, ñam, ñam, las plantas comen como plantas y los animales comen como animales. 00:36:05
Vale, ahora quiero que los animales, además de comer, digan algo 00:36:46
Puedo hacer x.sonar 00:36:59
¿Por qué no? 00:37:07
Porque x es un ser vivo 00:37:12
El ser vivo no tiene sonar 00:37:20
Ningún problema 00:37:22
Animal, píllame x 00:37:26
Trátamelo como un animal 00:37:33
Y hazlo sonar 00:37:35
¡Perfecto! 00:37:37
Explosion 00:37:42
¿Por qué? 00:37:43
¿Por qué explotado? 00:37:45
Porque el primer X 00:37:53
Es una planta 00:37:56
Y cuando yo intento decir a una planta 00:37:59
Trártamela como un animal 00:38:02
Lanza un class cast exception 00:38:04
Error de casting de clase 00:38:09
Tú tienes una planta 00:38:12
y me estás diciendo trátala como un animal 00:38:14
y la planta no es un animal 00:38:16
¿se entiende? 00:38:17
entonces ¿qué puedo hacer? 00:38:21
para hacer esto 00:38:23
para hacer que los animales también suenen 00:38:24
¿qué puedo hacer? 00:38:26
no, porque el ser vivo no suena 00:38:28
y si una planta te habla 00:38:39
es un problema 00:38:42
no asumamos 00:38:44
la existencia de ent 00:38:49
entonces 00:38:51
más claro, si 00:38:54
Entonces, sí, puedes hacer este casting. 00:38:59
O sea, si yo quiero hacer un casting de este ser vivo a un animal, 00:39:14
antes me cercioro que es un animal. 00:39:18
Si este ser vivo es instancia de animal, 00:39:21
cuando será una planta, esto será falso. 00:39:29
Y por lo tanto, no hace esto. 00:39:33
cuando será animal, esto será true 00:39:35
y por lo tanto puede hacer un casting a animal 00:39:39
y hacerlo sonar, y entonces ya 00:39:43
no explota, y las plantas comen y nada más 00:39:46
mientras los animales comen y luego suenan 00:39:53
las plantas comen nada más, el animal 00:39:57
come y suena, pues esto 00:40:01
es lo que vamos a hacer 00:40:10
de aquí a breve 00:40:12
crear 00:40:14
arrays 00:40:16
de cosas 00:40:18
más genéricas 00:40:19
un array de personas 00:40:23
y dentro del array personas poner 00:40:24
profesores y alumnos 00:40:26
y luego hacer programas que me van buscando 00:40:28
en las personas, solo los alumnos 00:40:30
solo los profesores, o si tengo que hacer 00:40:32
una cosa sobre todas las personas, me la pueden hacer 00:40:34
sobre todas las personas 00:40:36
tener un array 00:40:37
que si usa un método 00:40:40
que ha sido sobrescrito, solo lo llamo 00:40:42
y será Java que elige 00:40:44
cuál es la implementación 00:40:46
correcta 00:40:49
del método que va a utilizar 00:40:50
y si en vez 00:40:52
hay métodos que son 00:40:54
solo propios de una clase 00:40:56
pues comprobar que es 00:40:58
de esa clase o no 00:41:00
y si es de esta clase poder utilizarla 00:41:02
si no es de esta clase, no. 00:41:04
¿Dudas? 00:41:05
Materias:
Programación
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado superior
      • Primer Curso
Subido por:
Stefano C.
Licencia:
Reconocimiento - No comercial
Visualizaciones:
9
Fecha:
14 de enero de 2025 - 12:48
Visibilidad:
Clave
Centro:
IES ROSA CHACEL
Duración:
41′ 13″
Relación de aspecto:
16:10 El estándar usado por los portátiles de 15,4" y algunos otros, es ancho como el 16:9.
Resolución:
1152x720 píxeles
Tamaño:
147.36 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid