De 30 vídeos que he visto sobre el tema, el tuyo es el único que me ha dejado claro y cristalino qué es Polimorfismo. Eres muy grande. Aquí tienes un nuevo suscriptor.
Igual yo!!! tendo dos dias buscando un ejemplo que me pudiera ayudar a una tarea que estoy haciendo! y este creo que hizo que me queda mas claro el tema.
Es increíble la vigencia que tienen estos videos aún 5 años después. C# se ha modernizado con su versión 10, ha relajado su sintaxis un poco con .net 6 y las instrucciones de nivel superior, pero los conceptos siguen siendo los mismos y los dejas más que claros con tus videos. Tercer curso suyo que veo, primero c# básico, luego el de POO y ahora POO en C#, y voy a por más. Gracias por su inmenso aporte. Pocos cursos cubren tanto los conceptos como los suyos.
Hola Profesor, primero felicitarlo por su canal, he aprendido muchísimo, mil gracias. Tengo una duda, ¿a nivel de código, conviene trabajar siempre las clases al mayor nivel de abstracción posible, es decir, apuntando todo al polimorfismo? dicho de otra forma ¿La forma correcta de abordar la POO en este caso es trabajar siempre con las clases base (de ser posible) y luego llamar a los métodos propios de las clases hijas mediante casting? Muchas gracias!!
Hola, no necesariamente siempre tienes que ir con todo a polimorfismo. El analisis del problema y el diseño de clases que haces te van a indicar si usas herencia, polimorfismo o interfases. Realmente depende mucho del problema. En alguno no lo necesitaras, en otros si.
Termine la lista pero tengo una duda. Para ingresar valores por teclado, lo puedo hacer por métodos públicos para acceder a los atributos privados de la clase o desde el main puedo cargar datos a la clase a través de un constructor. Hay otras maneras de hacerlo desde el main?
Puedes mandarlos en el constructor si es al momento de crear el objeto, si es despues lo que te conviene es usar propiedades o algun metodo de interfaz
Hola!, no, no es casting. Tienes una variable miMascota que es del tipo CAnimal por lo que puede ser referenciada a cualquier instancia(objeto) que forme parte de su cadena de herencia. En ese caso la referencias a la instancia de CPerro que se crea en ese momento. Para casting necesitas indicar el tipo como quieres que temporalmente esa variable actue float r=c/(float)i En ese caso i siendo de tipo entero se toma temporalmente como flotante. Los tipos numericos tienen casting incorporados. En los otros tipos tenemos que ver si hay compatibilidad via la cadena de herencia o alguna conversion implicita o explicita que exista entre los tipos.
En una clase abstracta la clase base tiene metodos que no implementa, y son responsabilidad de las clases hijas llevar a cabo la implementacion segun sus necesidades. Es decir que el concepto "abstracto" que colocas en la clase base se vuelve "concreto" en la implementacion de las hijas. En el polimorfismo tu tienes una variable que puede refenciarse a instancias de diferentes objetos, siempre y cuando estos objetos sean hijos de la clase que usas para esa variable. Si tienes la clase CAnimal y como hijas de ella CGato y CPerro, entonces la variable CAnimal mascota, puede actuar como CAnimal, CGato o CPerro segun se necesite.
Buenos días Doctor hace poco leí un artículo cuestionando la POO, me gustaría mucho saber su opinión al respecto ya que sus videos están muy bien fundamentados para aplicar adecuadamente la POO, aquí le dejo el enlace: medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53?source=email-d3d2d1bb161c-1523292619729-digest.reader------0-49------------------a55641f22181-11§ionName=topic
La POO es un paradigma excelente que ha servido mucho y tiene su lugar en el desarrollo de software. Pero en esta industria nada es estatico, ni siquiera los paradigmas. Es natural que cualquier paradigma tenga limitaciones y conforme las maquinas se hacen mas poderosas y los problemas a resolver mas complejos necesitemos nuevas formas de resolverlos. Ahora con el aumento de paralelismo y procesadores vectoriales pues otras herramientas se adaptan mas. No es como espantarse y desechar la POO, mas bien es saber que utilizar ante que problema
De 30 vídeos que he visto sobre el tema, el tuyo es el único que me ha dejado claro y cristalino qué es Polimorfismo. Eres muy grande. Aquí tienes un nuevo suscriptor.
Igual yo!!! tendo dos dias buscando un ejemplo que me pudiera ayudar a una tarea que estoy haciendo! y este creo que hizo que me queda mas claro el tema.
Es increíble la vigencia que tienen estos videos aún 5 años después. C# se ha modernizado con su versión 10, ha relajado su sintaxis un poco con .net 6 y las instrucciones de nivel superior, pero los conceptos siguen siendo los mismos y los dejas más que claros con tus videos. Tercer curso suyo que veo, primero c# básico, luego el de POO y ahora POO en C#, y voy a por más. Gracias por su inmenso aporte. Pocos cursos cubren tanto los conceptos como los suyos.
Este video me ha ayudado bastante, muchas gracias nico no pares de enseñar !
Gracias todo muy claro
Buena explicación
Hola Profesor, primero felicitarlo por su canal, he aprendido muchísimo, mil gracias.
Tengo una duda, ¿a nivel de código, conviene trabajar siempre las clases al mayor nivel de abstracción posible, es decir, apuntando todo al polimorfismo? dicho de otra forma ¿La forma correcta de abordar la POO en este caso es trabajar siempre con las clases base (de ser posible) y luego llamar a los métodos propios de las clases hijas mediante casting?
Muchas gracias!!
Hola, no necesariamente siempre tienes que ir con todo a polimorfismo. El analisis del problema y el diseño de clases que haces te van a indicar si usas herencia, polimorfismo o interfases. Realmente depende mucho del problema. En alguno no lo necesitaras, en otros si.
excelente
Muy Buenos Videos! se scucha bastante bajo de volumen.😐
Profesor al inicio explica que se puede hacer con clases abstractas sería posible un ejemplo de esta forma? buenos videos Saludos
muy bien ✔
Like
b dia sin estar utlizando la consola, no tendra este ejemplo para utilizar las formas de VB.... de antemano muchas gracias
Hola! de VB no tengo contenido
Termine la lista pero tengo una duda. Para ingresar valores por teclado, lo puedo hacer por métodos públicos para acceder a los atributos privados de la clase o desde el main puedo cargar datos a la clase a través de un constructor. Hay otras maneras de hacerlo desde el main?
Puedes mandarlos en el constructor si es al momento de crear el objeto, si es despues lo que te conviene es usar propiedades o algun metodo de interfaz
Una pregunta: ¿cuando hacemos miMascota = new CPerro() estamos haciendo casting?
Hola!, no, no es casting. Tienes una variable miMascota que es del tipo CAnimal por lo que puede ser referenciada a cualquier instancia(objeto) que forme parte de su cadena de herencia. En ese caso la referencias a la instancia de CPerro que se crea en ese momento.
Para casting necesitas indicar el tipo como quieres que temporalmente esa variable actue float r=c/(float)i
En ese caso i siendo de tipo entero se toma temporalmente como flotante. Los tipos numericos tienen casting incorporados. En los otros tipos tenemos que ver si hay compatibilidad via la cadena de herencia o alguna conversion implicita o explicita que exista entre los tipos.
Es cierto, muchas gracias.
Cual es la diferencia entre mtdabstracto y mtdpolimorfismo
En una clase abstracta la clase base tiene metodos que no implementa, y son responsabilidad de las clases hijas llevar a cabo la implementacion segun sus necesidades. Es decir que el concepto "abstracto" que colocas en la clase base se vuelve "concreto" en la implementacion de las hijas.
En el polimorfismo tu tienes una variable que puede refenciarse a instancias de diferentes objetos, siempre y cuando estos objetos sean hijos de la clase que usas para esa variable. Si tienes la clase CAnimal y como hijas de ella CGato y CPerro, entonces la variable CAnimal mascota, puede actuar como CAnimal, CGato o CPerro segun se necesite.
No hay un video sobre esto pero para personas que no saben nada de programacion orientada a objetos?
Hay otra lista de reproduccion que es teorica en este mismo canal, puedes verla primero y ya luego regresar a esta que es la parte practica
Buenos días Doctor hace poco leí un artículo cuestionando la POO, me gustaría mucho saber su opinión al respecto ya que sus videos están muy bien fundamentados para aplicar adecuadamente la POO, aquí le dejo el enlace: medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53?source=email-d3d2d1bb161c-1523292619729-digest.reader------0-49------------------a55641f22181-11§ionName=topic
La POO es un paradigma excelente que ha servido mucho y tiene su lugar en el desarrollo de software. Pero en esta industria nada es estatico, ni siquiera los paradigmas. Es natural que cualquier paradigma tenga limitaciones y conforme las maquinas se hacen mas poderosas y los problemas a resolver mas complejos necesitemos nuevas formas de resolverlos. Ahora con el aumento de paralelismo y procesadores vectoriales pues otras herramientas se adaptan mas. No es como espantarse y desechar la POO, mas bien es saber que utilizar ante que problema
Pasa el trabajo oiga