1 00:00:01,139 --> 00:00:07,339 Olvide grabar en el otro ejercicio, o sea, en la explicación de la solución a los astros, 2 00:00:07,879 --> 00:00:14,759 que se viera claramente por qué, al ser una clase abstracta, no se pueden crear objetos de esa clase. 3 00:00:15,099 --> 00:00:17,800 O cómo no deja crearlo, pero es que no se pueden crear. 4 00:00:18,359 --> 00:00:25,120 Vale, recordad, tenemos la clase abstracta astros y las clases que lo extienden, planetas y satélites, 5 00:00:25,239 --> 00:00:28,239 que heredan los atributos de la clase astros. 6 00:00:28,239 --> 00:00:38,240 Y de hecho tienen el método muestra que es abstracto y cada una de ellas, los planetas y los satélites como clases, tienen que implementar ese método. 7 00:00:39,039 --> 00:00:49,899 Vale, volvemos al NetBeans y si os fijáis aquí, yo tengo un ArrayList de astros que lo creo como New ArrayList. 8 00:00:49,899 --> 00:00:58,000 Así que puedo meter cualquier cosa. Puedo meter planetas, pero podría meter string o lo que me diera la gana. 9 00:00:58,240 --> 00:01:03,619 Otra manera de crearlo es como aquí abajo, que es diciendo exactamente de qué lo voy a crear. 10 00:01:05,620 --> 00:01:12,939 Fijaros que si yo lo hubiera convertido en astros, como una railis de astro, también funcionaría. 11 00:01:12,939 --> 00:01:27,989 Voy a ejecutar, para que veáis que también funciona. 12 00:01:31,340 --> 00:01:34,459 Que no me gusta, no se vea si funciona o no. 13 00:01:34,459 --> 00:01:50,349 Fijaros, funciona perfectamente. Me ha mostrado los astros y me deja salir. 14 00:01:50,349 --> 00:02:01,730 Quiere decir que le da lo mismo que defina el ArrayList donde voy a guardar todos los astros. 15 00:02:01,730 --> 00:02:02,730 como 16 00:02:03,909 --> 00:02:05,109 estoy cerrando 17 00:02:05,909 --> 00:02:08,229 le da lo mismo que lo defina 18 00:02:08,409 --> 00:02:11,370 como un ArrayList simplemente o 19 00:02:11,370 --> 00:02:14,490 como un ArrayList de astro 20 00:02:14,490 --> 00:02:17,770 fijaros que se pone primero ArrayList y la palabra astro 21 00:02:17,770 --> 00:02:20,169 y luego al final ArrayList 22 00:02:20,169 --> 00:02:23,229 la palabra astro como clase y los paréntesis 23 00:02:23,229 --> 00:02:26,110 si me vengo aquí, guarden que me está dando 24 00:02:27,110 --> 00:02:30,009 vale, algo habré hecho mal pero funciona 25 00:02:30,009 --> 00:02:42,229 Un momento que me paro, no sé por qué se fija con este error de redundante, porque de hecho hace un segundo he estado mirando cómo lo explicaba V3School, fijaros, ¿veis? 26 00:02:42,729 --> 00:02:52,729 Puedo crear una ArrayList así, de string, poniendo ArrayList string en nombre de la variable newArrayListString, o puedo crear una ArrayList directamente. 27 00:02:52,729 --> 00:03:00,370 no me viene la otra forma de crearlo 28 00:03:00,370 --> 00:03:02,030 pero como lo estábamos haciendo 29 00:03:02,030 --> 00:03:03,610 simplemente poniendo un nuevo ArrayList 30 00:03:03,610 --> 00:03:06,210 y no especificando el tipo 31 00:03:06,210 --> 00:03:08,710 vale, yo ya aquí estoy diciendo que haga un ArrayList 32 00:03:08,710 --> 00:03:10,610 de astros 33 00:03:10,610 --> 00:03:12,389 y voy 34 00:03:12,389 --> 00:03:13,229 estoy metiendo 35 00:03:13,229 --> 00:03:15,389 las planetas y los satélites 36 00:03:15,389 --> 00:03:17,490 si yo intentara crear 37 00:03:17,490 --> 00:03:18,629 en PENPE 38 00:03:18,629 --> 00:03:22,069 un planeta o un satélite 39 00:03:22,069 --> 00:03:26,710 Intentar a crear una variable de tipo astro 40 00:03:26,710 --> 00:03:29,129 Fijaros que me deja crearla 41 00:03:29,129 --> 00:03:30,710 Lo único que me da un warning 42 00:03:30,710 --> 00:03:32,270 Voy a ampliar 43 00:03:32,270 --> 00:03:34,909 Me da aquí un warning porque nunca la uso 44 00:03:34,909 --> 00:03:38,449 Nunca está usada la variable cualquiera que es de tipo astro 45 00:03:38,449 --> 00:03:41,409 Y en cambio me da un error aquí 46 00:03:41,409 --> 00:03:42,669 Con la variable otra vez 47 00:03:42,669 --> 00:03:45,009 La variable otra vez es de tipo astro 48 00:03:45,009 --> 00:03:47,009 Intento hacer un new tipo astro 49 00:03:47,009 --> 00:03:49,530 Pero me dice que astro es abstracta 50 00:03:49,530 --> 00:03:50,889 Fijaos en el mensaje de error 51 00:03:50,889 --> 00:03:52,750 y que no puede ser instanciada 52 00:03:52,750 --> 00:03:54,870 quiere decir, yo no puedo crear objetos 53 00:03:54,870 --> 00:03:57,050 de tipo astro 54 00:03:57,050 --> 00:03:57,870 pero 55 00:03:57,870 --> 00:04:02,930 fijaros que cuando yo 56 00:04:02,930 --> 00:04:07,310 llamo a mostrar lista de astros 57 00:04:07,310 --> 00:04:08,229 a esta función 58 00:04:08,229 --> 00:04:16,310 fijaros que yo 59 00:04:16,310 --> 00:04:17,769 tengo un array list 60 00:04:17,769 --> 00:04:20,110 que es de astros, aquí no lo sé 61 00:04:20,110 --> 00:04:20,709 pero fuera así 62 00:04:20,709 --> 00:04:24,389 y para cada uno de los elementos que hay en el ArrayList 63 00:04:24,389 --> 00:04:26,689 hago astros.get 64 00:04:26,689 --> 00:04:28,910 que realmente astros es el nombre de la variable 65 00:04:28,910 --> 00:04:31,769 lo que me está obteniendo es un elemento que hay dentro del ArrayList 66 00:04:31,769 --> 00:04:33,689 y con este cast 67 00:04:33,689 --> 00:04:36,189 al poner entre paréntesis la palabra astro 68 00:04:36,189 --> 00:04:38,670 le estoy convirtiendo en astro 69 00:04:38,670 --> 00:04:41,829 entonces aunque no puedo crear un objeto tipo astro 70 00:04:41,829 --> 00:04:46,009 sí que puedo decir que esto es un astro 71 00:04:46,009 --> 00:04:48,730 porque todos los planetas y todos los satélites son astros 72 00:04:48,730 --> 00:04:50,810 y lo único que estoy metiendo en esta lista 73 00:04:50,810 --> 00:04:52,870 son planetas y satélites 74 00:04:52,870 --> 00:04:54,389 os quería que vierais que no 75 00:04:54,389 --> 00:04:57,290 puedo crearlo pero sí puedo convertirlo 76 00:04:57,290 --> 00:04:58,329 aquí estoy diciéndole 77 00:04:58,329 --> 00:05:01,170 a.getName y es un astro 78 00:05:01,170 --> 00:05:02,490 ¿de acuerdo? 79 00:05:02,589 --> 00:05:04,149 entonces no puedo 80 00:05:04,149 --> 00:05:07,370 crearlo pero sí puedo definirlo 81 00:05:07,370 --> 00:05:08,290 y asignarlo 82 00:05:08,290 --> 00:05:11,189 y no sé si en este vídeo lo he dicho 83 00:05:11,189 --> 00:05:13,209 que me da mucha gracia que he hecho 84 00:05:13,209 --> 00:05:14,170 una cosa mal 85 00:05:14,170 --> 00:05:16,370 que aquí utilizo minúsculas 86 00:05:16,370 --> 00:05:19,709 en astro, planeta y satélite 87 00:05:19,709 --> 00:05:21,209 y en cambio 88 00:05:21,209 --> 00:05:23,410 en el enunciado 89 00:05:23,410 --> 00:05:24,829 uso mayúsculas 90 00:05:24,829 --> 00:05:27,550 astros, planetetas y satélites 91 00:05:27,550 --> 00:05:29,670 y si os llevo a V3SQ 92 00:05:29,670 --> 00:05:32,050 si os fijáis 93 00:05:32,050 --> 00:05:34,029 siempre se pone en singular 94 00:05:34,029 --> 00:05:35,970 así que es vehículo, coche 95 00:05:35,970 --> 00:05:39,449 siempre es singular 96 00:05:39,449 --> 00:05:41,550 entonces ahí lo estoy haciendo mal 97 00:05:41,550 --> 00:05:43,970 en el enunciado, tenía que hablar en singular 98 00:05:43,970 --> 00:05:44,569 fijaros 99 00:05:44,569 --> 00:05:46,329 animal 100 00:05:46,329 --> 00:05:49,069 cerdo, animal 101 00:05:49,069 --> 00:05:51,310 perro, no fallo 102 00:05:51,310 --> 00:05:53,050 con estos 103 00:05:53,050 --> 00:05:55,350 zoom os tenéis que estar colocando 104 00:05:55,350 --> 00:05:57,410 vale, muchas gracias por la paciencia 105 00:05:57,410 --> 00:05:58,930 y espero que haya quedado 106 00:05:58,930 --> 00:06:01,209 claro el hecho 107 00:06:01,209 --> 00:06:03,550 de que lo vuelvo a escribir aquí 108 00:06:03,550 --> 00:06:05,670 o sea, vuelvo a hacer zoom 109 00:06:05,670 --> 00:06:07,329 vale, se puede 110 00:06:07,329 --> 00:06:09,209 definir una variable 111 00:06:09,209 --> 00:06:11,970 de un objeto 112 00:06:11,970 --> 00:06:13,490 o sea, se puede definir una variable 113 00:06:13,490 --> 00:06:18,069 que en algún momento apuntará un objeto de tipo astro, aunque astro sea abstracto, 114 00:06:18,509 --> 00:06:23,310 pero no puedo hacer un new de tipo astro porque me va a dar error, 115 00:06:23,689 --> 00:06:31,930 porque no se pueden crear objetos o instanciar clases, crear objetos o instancias de una clase abstracta.