Amigo muchas gracias, estaba siguiendo el curso de ATS de java pero tus videos son mil veces mejor, cuando acabe de ver tus videos de POO te invitare tu cafecito te lo prometo 🙌
Te mereces un tsunami de suscriptores, la verdad que son muy claras y profesionales tus explicaciones. Si bien son conceptos complicados de digerir los haces ver muy simple.
Tenga su buen like profe!!!!!! Muy bueno el video. Siempre había tenido problemas sobre la sobreescritura y por mas que leía e investigaba en libros no lo entendía. Muchas gracias profe como siempre!!!!!
hola que tal .... que tal hacer un video de la inmutabilidad de los objetos ... como se construyen ?para que se hacen ? cuales son sus buenas practicas ??? etc
No, porque te llega un parámetro de tipo "Vehiculo". Debés usar downcasting sí o sí para usar métodos específicos de la clase Bicicleta que no estén en Vehiculo.
Charly gracias por estos videos, te hago una consulta. que pasa si yo quiero mostrar una propiedad y no un método? ahí si tengo que usar el instanceof o hay otra manera mas eficiente de hacerlo?
Buenas, tengo un lio con el polimorfismo (@override) y las clases y métodos abstractos. Es decir, en el ejemplo que pones, si en el método encendido en vehiculo no lo sabemos implementar, no sería un método abstracto?
Muy buenas tardes, una pregunta, tengo dudas de cuando se debería de usar super() al momento de sobreescribir un metodo. Entiendo que el super() extiende el comportamiento, pero por ejemplo en el metodo paintComponent se tiene que escribir super() y en otros metodos como actionPerformed al momento de trabajar con eventos con ActionListener y sobreescribir esos metodos, porque ese tipo de sobreescritura de metodos no llevan super?
Hola. 'super()' tal y como lo escribes se usa para invocar al constructor de la superclase, desde el constructor de una subclase (tengo un video dedicado exclusivamente a ello). No se puede poner 'super()' en un método que no sea constructor.
Si en tu ejemplo te referís a 'super.paintComponent(g);' ahí usa la palabra 'super' para desambiguar. Estás llamando a la lógica que está en la superclase desde la subclase. Como ambos métodos se llaman iguales (porque lo redefiniste), hay que anteponer la palabra 'super' para desambiaguar y evitar una recursisvidad infinita, En este video lo explico en detalle: ruclips.net/video/Z3x4TpZgCw8/видео.htmlsi=YroVDdCV3Bo0dAsp
@@CharlyCimino Lo siento, no escribí bien lo anterior. Tengo claro lo de super() y que llama al constructor del padre. Lo que no me queda muy claro es cuando se usa super en un metodo, mi duda va más en como saber que métodos al momento de ser sobreescritos deben llevar super. En el caso de paintComponent al momento de sobreescribirlo se usa super.paintComponet(g) ya que la misma API nos indica que debemos hacerlo así y nos aseguramos que funcione bien, pero no entiendo por que en el caso del metodo actionPerformed de la interfaz ActionListener no se coloca super.actionPerformed(), sino que solo se sigue escribiendo y funciona sin problema. Acaso el actionPerformed es un metodo vacío o ya la maquina virtual de Java coloca el super implicitamente ?
@@vinicioangel7600 actionPerformed() es un método ABSTRACTO en la interfaz ActionListener. Al sobrescribirlo, no tenés nada que pedirle a la interfaz. En cambio, paintComponent es un método que sí tiene una implementación concreta. Cuando lo sobrescribís, querés asegurarte de que primero se pinten los componentes de la superclase y luego se haga lo que estás redefiniendo, por eso lo llamás. En realidad cuándo sí o cuándo no llamar al método redefinido de la superclase no es algo que pudiera contestarte de manera general. Depende qué estás usando y de cómo está implementado. Vuelvo a compartirte este enlace que por ahçi te ayuda a entender mejor cuándo usar este concepto para tus clases. Para las que ya trae Java, es cuestión de leer la documentación pertinente: ruclips.net/video/Z3x4TpZgCw8/видео.htmlsi=YroVDdCV3Bo0dAsp
@@CharlyCimino Ahora ya lo entiendo mejor, muchas gracias, solo una última duda. Tengo entendido que los métodos abstractos no tienen contenido en su interior, uno los debe implementar al heredar la clase, pero hay unos metodos abstractos de la API de Java que me parecieran que si tuviera codigo, como por ejemplo en la clase Toolkit y varios de sus metodos son abstractos hay metodos como beep que funcionan como si tuvieran codigo adentro a pesar de ser metodos abstractos, como funcionan estos metodos?
🙌 ¡APOYÁ AL CANAL! Si te gusta mi contenido, invitame un cafecito 😁
➡ Desde Argentina: cafecito.app/charlycimino
➡ Fuera de Argentina: paypal.me/charlycimino
📌 Dejá tu comentario 📝, dale 'like' 👍, suscribite al canal 👥 y activá la campanita 🔔 ¡GRACIAS!
🤳 ¡Seguime!
🌏WEB PERSONAL: charlycimino.com 🌏
🌎INSTAGRAM: instagram.com/charlycimino 🌏
🌍FACEBOOK: facebook.com/charlyycimino 🌏
🌏LINKEDIN: linkedin.com/in/charlycimino 🌏
🌏GITHUB: github.com/CharlyCimino 🌏
🌏TWITCH: www.twitch.tv/charlycimino 🌏
🌏PATREON: patreon.com/charlycimino 🌏
Amigo muchas gracias, estaba siguiendo el curso de ATS de java pero tus videos son mil veces mejor, cuando acabe de ver tus videos de POO te invitare tu cafecito te lo prometo 🙌
Te mereces un tsunami de suscriptores, la verdad que son muy claras y profesionales tus explicaciones. Si bien son conceptos complicados de digerir los haces ver muy simple.
esto es ORO puro. Te deje un cafecito genio!!
felicitaciones por este video de polimorfismo sobre escribir métodos de una clase padre!!! un crack!!!
charly querido el mejor video que vi en youtube con respecto a herencia!!! felicitaciones.
Muchísimas gracias por su contenido, me gusta mucho su forma de enseñar. Es agradable sin dejar de ser rigurosa. Gracias :D
clarísimo, muchas gracias!
Muy claros todos los ejemplos que brindás, Gracias por tu gran aporte!!!
Eres muy pro explicando
Tenga su buen like profe!!!!!! Muy bueno el video. Siempre había tenido problemas sobre la sobreescritura y por mas que leía e investigaba en libros no lo entendía. Muchas gracias profe como siempre!!!!!
Likazo, mucho mas que agradecido maestro!
Gracias por existir
Excelente video
buenisimo gracias!
Grande maestro!!!
Genial charly, gracias por el conocimiento.
Excelente, como siempre 👏
hola que tal .... que tal hacer un video de la inmutabilidad de los objetos ... como se construyen ?para que se hacen ? cuales son sus buenas practicas ??? etc
gracias por el vide
6:45 entiendo que al hacer esto se podría usar a los métodos del objeto bicicleta si necesidad de hacer un dowcasting ?
No, porque te llega un parámetro de tipo "Vehiculo". Debés usar downcasting sí o sí para usar métodos específicos de la clase Bicicleta que no estén en Vehiculo.
@@CharlyCimino vale gracias 😃👍
Charly gracias por estos videos, te hago una consulta.
que pasa si yo quiero mostrar una propiedad y no un método? ahí si tengo que usar el instanceof o hay otra manera mas eficiente de hacerlo?
Buenas, tengo un lio con el polimorfismo (@override) y las clases y métodos abstractos. Es decir, en el ejemplo que pones, si en el método encendido en vehiculo no lo sabemos implementar, no sería un método abstracto?
@@matu4239 así es, más adelante en la playlist se aborda tal concepto
@@CharlyCimino Perfecto gracias!!!
en que página hiciste el diagrama?
un video mas para aclarar toda la confucion que mi maestro de la universidad me genero, saludos
Muy buenas tardes, una pregunta, tengo dudas de cuando se debería de usar super() al momento de sobreescribir un metodo. Entiendo que el super() extiende el comportamiento, pero por ejemplo en el metodo paintComponent se tiene que escribir super() y en otros metodos como actionPerformed al momento de trabajar con eventos con ActionListener y sobreescribir esos metodos, porque ese tipo de sobreescritura de metodos no llevan super?
Hola. 'super()' tal y como lo escribes se usa para invocar al constructor de la superclase, desde el constructor de una subclase (tengo un video dedicado exclusivamente a ello). No se puede poner 'super()' en un método que no sea constructor.
Si en tu ejemplo te referís a 'super.paintComponent(g);' ahí usa la palabra 'super' para desambiguar. Estás llamando a la lógica que está en la superclase desde la subclase. Como ambos métodos se llaman iguales (porque lo redefiniste), hay que anteponer la palabra 'super' para desambiaguar y evitar una recursisvidad infinita, En este video lo explico en detalle: ruclips.net/video/Z3x4TpZgCw8/видео.htmlsi=YroVDdCV3Bo0dAsp
@@CharlyCimino Lo siento, no escribí bien lo anterior. Tengo claro lo de super() y que llama al constructor del padre. Lo que no me queda muy claro es cuando se usa super en un metodo, mi duda va más en como saber que métodos al momento de ser sobreescritos deben llevar super. En el caso de paintComponent al momento de sobreescribirlo se usa super.paintComponet(g) ya que la misma API nos indica que debemos hacerlo así y nos aseguramos que funcione bien, pero no entiendo por que en el caso del metodo actionPerformed de la interfaz ActionListener no se coloca super.actionPerformed(), sino que solo se sigue escribiendo y funciona sin problema. Acaso el actionPerformed es un metodo vacío o ya la maquina virtual de Java coloca el super implicitamente ?
@@vinicioangel7600 actionPerformed() es un método ABSTRACTO en la interfaz ActionListener. Al sobrescribirlo, no tenés nada que pedirle a la interfaz. En cambio, paintComponent es un método que sí tiene una implementación concreta. Cuando lo sobrescribís, querés asegurarte de que primero se pinten los componentes de la superclase y luego se haga lo que estás redefiniendo, por eso lo llamás. En realidad cuándo sí o cuándo no llamar al método redefinido de la superclase no es algo que pudiera contestarte de manera general. Depende qué estás usando y de cómo está implementado. Vuelvo a compartirte este enlace que por ahçi te ayuda a entender mejor cuándo usar este concepto para tus clases. Para las que ya trae Java, es cuestión de leer la documentación pertinente: ruclips.net/video/Z3x4TpZgCw8/видео.htmlsi=YroVDdCV3Bo0dAsp
@@CharlyCimino Ahora ya lo entiendo mejor, muchas gracias, solo una última duda. Tengo entendido que los métodos abstractos no tienen contenido en su interior, uno los debe implementar al heredar la clase, pero hay unos metodos abstractos de la API de Java que me parecieran que si tuviera codigo, como por ejemplo en la clase Toolkit y varios de sus metodos son abstractos hay metodos como beep que funcionan como si tuvieran codigo adentro a pesar de ser metodos abstractos, como funcionan estos metodos?
Cada vez que ewcuchaba polimorfismo me subía el colesterol. Ahora sólo me sube la azúcar.
grandisimo instructor , mal piloto de aviones, pero grandisimo instructor
Jajajaja, gracias!