Queria expresarte mi agradecimiento por tus videos. Ya conocia muy bien JavaScript pero en mi empresa empezaron a usar C# en el backend y pues por aqui empece mi aprendizaje y ha sido muy facil comprender todo lo que has explicado. Solo te diria que veo que te preocupas mucho por lo que otros digan para corregirte, y la verdad te digo que no pienses mucho en eso, hay personas cuyo unico proposito en la vida es criticar a los demas para sentirse superiores. En lo personal si te equivocas en algo mi sentido comun me dira que lo pase por alto y ya, asi que no te quites la vida en esos detalles pequeños, pero nuevamente muy agradecido por compartir tus conocimientos de forma tan sencilla. Saludos desde Nicaragua y exito.
la verdad que te agradezco. lo bien que explicaste me quedo mas que claro. Todos los videos que veo en tu canal son geniales. Nuevamente agradecido por tu tiempo y dedicación en cada entrega. saludos.
Crack!! Estás poniendo el listón muy alto. El que venga detrás a hacer un vídeo de c# lo va a tener difícil. +1 a patrones de diseño. PD. No era Willy? La ballena.
Simplemente emocionante averiguar y profundizar nuevos conceptos a medida que avanza el curso. Nuevamente le agradezco por compartir este material de tan gran calidad.
Correre el riesgo de ser repetitivo, pero que nivel de enseñanza, felicitaciones, lo dificil lo haces entender muuuuy facil (perdon por la ortografia). Eres un crack !!!
Muchas gracias por tus videos, son muy buenos. En cuanto a la palabra interfaces, viene del ingles, pero existe en el español, por tanto, es correcto decirlo como se escribe para el español.
Hola Juan! Espectacular una vez más! Te voy a hacer un pedido. Puedes agregar a este curso el tema genérico de patrones de diseño. Pero no todo el tema, porque hay infinidad de patrones de diseño. Sino, el patrón de diseño que tú utilizas a la hora de diagramar y esquematizar previamente todo, para la realización de un sistema X. Es decir, ya que para programar algo mas o menos serio, no es suficiente conocer todos los temarios de los lenguajes de programación. Todo se cocina en la previa, en la diagramación previa. Muchas gracias por tanto Juan. Saludos Leopoldo.
Hola Juan, en el min 22:00, en el writeline, no es necesario usar el símbolo +, puedes poner "... Babieca: {0}", miBabieca.numeroPatas"). donde pone {0} será sustituido por el valor del primer argumento y así sucesivamente si deseas ampliarlo.
Cuando hablaban del termino, me imaginaba algo gráfico de pantalla jaja... pero es algo distinto en c#, me imagino que más adelante en el curso se toca el tema de la representación gráfica
Otro ejemplo: lo que he hecho yo es crear una interfaz llamada IAquiferos (sin la diéresis, lógicamente) para que cualquier animal cuyo ecosistema sea el agua la implemente. En ella se encuentra el método Nadar(). De todos los animales de la aplicación (caballo, humano, gorila y ballena) sólo ésta última la implementa). En el caso de añadir anfibios al programa, réptiles de agua, etc. sólo hay que hacer que la implementen.
Excelente video. Sin embargo no me queda claro cuando a nivel profesional debería usar las interfaces, me gustaría un ejemplo o escenario a nivel laboral dónde se podría hacer uso de ellas.
Un ejemplo comun es en base de datos, puedes crear un interfaz cuyos métodos representen los diferentes estados como consultar, insertar, actualizar y borrar, y esa interfaz la implementas en un clase base de datos y hacer la lógica que requieras para esos métodos, otro ejemplo comun es para las devoluciones de llamadas o callbacks donde esa interfaz te devuelve un valor que puedes usar en X clase, si te preguntas que valor puede ser, pues depende del contexto, pero por ejemplo un móvil darte la ubicación y esa interfaz te dice los datos como longitud y latitud del dispositivo, otro ejemplo en un pagina que consume un servicio web pues esa interfaz te puede traer los datos de un servidor, otro puede ser implementar un patrón de diseño como mvp o mvc donde usualmente se usan interfaces para conectar los datos con la interfaz de usuario UI, etc, etc ,el uso de las interfaces es muy amplio y depende de cada desarrollador como usarlas, obviamente puedes implementar los ejemplos que te puse sin usar interfaces, pero es importante conocerlas y saber usarlas y en el mundo laboral no es la excepción, espero haberte ayudado
Interfaz es perfectamente válido porque es una palabra inglesa que el castellano ha adoptado, como por ejemplo Fútbol, que es válida tal cual. No hace falta pronunciarla como un inglés.
Un saludo estimados, excelente tu explicacion de C#. Tengo una duda con respecto a la clase de interfaces. Cúal sería la ventaja de usar la interfaz??? Es decir no veo diferencia si en la clase Caballo por ejemplo, implemento un método "ContarPatas()" y le doy cuerpo a ese método sin necesidad de hacer uso de la interfaz. Ya que al fín y al cabo, estoy escribiendo el método en una clase particular. Hacerlo como método propio de la clase o desde una interfaz pues básicamente fue lo mismo y he ahí mi duda respecto al uso de la interfaz. Disculpen mi ignorancia respecto al tema, me imagino que detras de las interfaces hay una potente herramienta que aún no domino. De antemano muchas gracias por las aclaratorias que me puedan facilitar. Saludos...
Haciéndolo en la propia clase no obligas a implementar el método contarPatas. Imagina que estás creando un programa y quieres que cualquier otro programador se vea obligado a crear el método contarPatas en una clase que herede de la interfaz. Si lo haces en tu propia clase crear el método es opcional. Desde una interfaz es obligatorio. Un saludo!
Ahora lo entiendo. Muchisimas gracias profesor por su ayuda. Quería comentarle que tengo unos vídeos de un curso de C# en ingles. Si quiere puedo facilitarselos para ver que le parecen y si le es util pueda enriquecer el curso de C# que he venido siguiendo en su canal. Cualquier novedad puedo compartirle el drive. Saludos y nuevamente muchas gracias por su tiempo.@@pildorasinformaticas
Interfaces en español existe y en ingles también y se escriben igual solo que es de buen gusto o buenas costumbres pronunciarlo en español si vienes hablando en español y en ingles si vienes hablando en ingles
Me gustaría que hiciera un proytecto final de todo lo que has dado para así ver cómo se usan todos esos conceptos y tambien conectandolo todo a base de datos con sql server
Genial tu explicación como siempre Juan. Lo único que te quería comentar es que no veo muy acertado cuando dices al principio que implementar es sinónimo de heredar, pues implementar es “aplicar métodos o medidas para poner algo en funcionamiento para que haga alguna cosa” y heredar perse no implica implementar; en mi opinión. Pero muchas gracias por tus fantásticos vídeos que siempre espero con ansiedad. Un saludo desde Canarias.
entendi toda la implementacion pero no la utilidad, por ejemplo el metodo numeroPatas() no se lo podria haber puesto en cada clase?? por ej en gorila y que retorne 2 : public int numeroPatas(){ return 2;}) y en caballo de la misma manera q retorne 4 , les agradeceria una respuesta, saludos!!
Hola, tengo una duda, en este caso no se podria haber hecho tambien un metodo base (Mamiferos) y luego en vez de una interfaz hacer otros dos metodos que sean MamiferosTerrestres y MamiferosAcuaticos? o es que no se puede y por eso lo hizo asi, nada tenia esa duda, ojala me puedan ayudar
Con no utilizarlo sería suficiente, como bien dice el video (aunque no de esa forma), pasa lo mismo con muchas interfaces, al final en algunas interfaces no usas todos sus metodos, si por ejemplo en un videojuego estamos haciendo una clase llamada Combate y combate tiene bonificaciones de vida, mana, fuerza, inteligencia, agilidad, etc, sería una locura hacer una interfaz llamada para cada uno de los bonus(IAgilityBonus, IStrenghtBonus, IIntelligenseBonus), te acabas liando de tanta interfaz, por lo que agrupar no siempre es malo, salvo que puedas evitarlo o te veas capaz de evitarlo pero en mi caso prefiero => ICombatBonus y agrupar alli los metodos, los use o no, en lugar de imlementar 10 interfaces separadas solo para una clase llamada Combate.
Hola Juan , contenido de calidad como siempre. Te tengo dos preguntas 1) ¿Las interfaces simplemente pueden contener métodos ? o pueden contener dentro de ellas propiedades , constantes , eventos ,etc y 2) ¿Las interfaces pueden heredar o implementar otra interfaz ?
tu tambien tienes qu poner de tu parte y buscar por tu cuenta, ya se que no hay nada de malo en preguntar, pero tampoco Juan te lo dara todo en la boca.
En una Interface puedes definir métodos,propiedades.indizadores,eventos y puedes implementar dichos miembros con clases con nombre, clases anónimas(en c# no se puede,espero pronto que si) y structs. Para terminar a partir de c#8.0 una interface puede implementar miembros por defecto y definir métodos static.
estoy siguiendo al pie de la letra pero me sale the type or namespace name could not be found (are you missing a using directive or an assembly reference?) respecto a la interface. :(
Gracias por el vídeo. Me he quedado con una duda: Dices que la interfaz obliga a futuros desarrolladores a implementarla si definen nuevas clases, pero yo puedo desarrollar un nuevo mamífero y no poner la interfaz numeroPatas en la declaración. ¿Cómo me está obligando entonces?
Hola marc creo entender tu duda, Es por eso que el uso de las interfaces varia.. Por que podrias declarar la interfaz inmediatamente en la clase mamiferos pero se sabe que no todos los mamiferos tienen patas, Pero por ejemplo si se van a crear nuevas instancias de alguna clase como lo que es "Humanos" Pues al momento de declarar un nuevo humano obligas al desarrollador a que te el numero de patas.
Tengo una duda por si alguien me la puede responder es que si puedo implementar metodos en las interfaces que no devuelvan algun valor es decir que sean void.Muchas gracias por todo.Excelentes vídeos
¿Cuando dices implementar te refieres a definir el código dentro de la interfaz?... Aquí vienen dos cosas importantes. 1) una interfaz es un contrato, y los métodos sus firmas, los cuales contienen su nombre, el tipo que devuelve y los parámetros. Un contrato que las clases deben respetar e implementar. En tu interfaz puedes tener métodos void o de cualquier otro tipo. 2) desde C# 8 (Que salio hace algunos meses con .Net Core 3), las interfaces también pueden implementa el código, es decir que las interfaces parecen más clases abstractas que otra cosa, salvo algunas diferencias. Esto es muy bueno porque te permite herencia múltiple, cosa que no se podía hasta antes de C# 8. Saludos.
En una Interface puedes definir métodos,propiedades.indizadores,eventos y puedes implementar dichos miembros con clases con nombre, clases anónimas(en c# no se puede,espero pronto que si) y structs. Para terminar a partir de c#8.0 una interface puede implementar miembros por defecto y definir métodos static.
la pregunta más importante es. como aislo la clase interfaz de los futuros programadores, para evitar que sea modificada? y así tenga sentido todo esto
Hola, espero que estén bien.... tengo una duda ¿por que debo imprimirlo en un CW(objeto.numerodepatas()); .... y no directamente objeto.numerodepatas(); ? alguien que por favor me explique .... muchas gracias
Hola Juan, me gustaria ver si se puede implementar en el curso los patrones de diseño, es un tema que estoy viendo en la universidad y me gustaria que me enseñes tu conocimiento gracias.
cambiaron la sintaxis de las interfaces en c#, apenas estoy aprendiendo y seguí al paso todo esto y me daba error, la solucion que pude encontrar es declarar la interfaz como objeto (IMamiferosTerrestres numeroPatas = new Caballo("");), ademas de tener que añadir la interfaz detras del numero de patas (int IMamiferosTerrestres.numerosPatas() => 4;), ya para que imprima el texto solo añadi el mismo console write line pero con el objeto para ingresar al numero de patas (Console.WriteLine("Numero de patas de babieca: " + numeroPatas.numerosPatas());) (edit: espero que esto este correcto con las nueva sintaxis de interfaces en c# 2022)
No pretendo empezar una discusión ni mucho menos, pero como persona experimentada en el idioma inglés, puedo decir con certeza que la pronunciación adecuada sería 'in-ter-feis'
class vehiculo { public virtual void arrancar() { string x; do { try { System.Console.WriteLine("¿Desea arrancar el motor?"); x = System.Console.ReadLine(); if (x == "si") { string y; try { System.Console.WriteLine("El motor esta arrancando"); System.Console.WriteLine("Desea apagar el motor"); y = System.Console.ReadLine(); if (y == "Si" || y == "si") { System.Console.WriteLine("Usted ha apagado el motor"); x = "no"; } else { System.Console.WriteLine("El auto sigue arrancando"); x = "si"; } } catch (FormatException) { y = "no"; } } else { System.Console.WriteLine("El motor ha sido apagado"); x = "no"; } } catch { x = "no"; } }while (x == "si" || x == "Si") ;
} public virtual void conducir() { System.Console.WriteLine("Necesito un motor para conducir"); } protected void velocidad() { System.Console.WriteLine("Soy rapido"); } } class avion : vehiculo { public override void conducir() { System.Console.WriteLine("Mi motor es duradero y casi el mas eficaz"); velocidad(); } } class coche : vehiculo { public override void conducir() { System.Console.WriteLine("No soy el mas eficiente, pero puedo ayudar en tierra y soy mas economico"); velocidad(); } } vehiculo carro = new vehiculo(); coche carrito = new coche(); avion avioncito = new avion(); carro.arrancar(); carro.conducir(); carrito.arrancar(); carrito.conducir(); avioncito.arrancar(); avioncito.conducir(); yo lo hice de esta forma...
Queria expresarte mi agradecimiento por tus videos. Ya conocia muy bien JavaScript pero en mi empresa empezaron a usar C# en el backend y pues por aqui empece mi aprendizaje y ha sido muy facil comprender todo lo que has explicado. Solo te diria que veo que te preocupas mucho por lo que otros digan para corregirte, y la verdad te digo que no pienses mucho en eso, hay personas cuyo unico proposito en la vida es criticar a los demas para sentirse superiores. En lo personal si te equivocas en algo mi sentido comun me dira que lo pase por alto y ya, asi que no te quites la vida en esos detalles pequeños, pero nuevamente muy agradecido por compartir tus conocimientos de forma tan sencilla. Saludos desde Nicaragua y exito.
Hola soy de Nicaragua, queria saber si la empresa en la que trabajas esta en Nicaragua o no
Eres buenísimo Juan! Soy estudiante de ingeniería en sistemas y siento que entendí todo gracias a tu explicación, algo que no me sucedió en clases.
Le estoy metiendo 5 horas por día a tus videos, muy buenos
Hace varios años compre un curso de Java y cuando toco este tema no comprendí nada de nada pero ahora en pocos minutos lo comprendí al 100%
Como este hombre explica la programación, no lo hace nadie. Wow que vocación!
Ernesto si bro
Como siempre, e logrado entenderlo muy bien gracias a tan buena explicacionn
Mil gracias Juan!!!
Sos un maestro con todas las letras
Muy sencillo de entender. La verdad que los 100 vídeos intimidan un poco, pero definitivamente valen la pena. Gracias por ayudar a tanta gente!
Entendido a la primera, continuamos!
la verdad que te agradezco. lo bien que explicaste me quedo mas que claro. Todos los videos que veo en tu canal son geniales. Nuevamente agradecido por tu tiempo y dedicación en cada entrega.
saludos.
Crack!! Estás poniendo el listón muy alto. El que venga detrás a hacer un vídeo de c# lo va a tener difícil.
+1 a patrones de diseño.
PD. No era Willy? La ballena.
:)) Liberad a Willy!!
Como siempre excelente tutor, y demuestras mucha dedicación en tus videos, te felicito y gracias !!!!
Muchas gracias HERMANO, por favor no te olvides de la siguiente parte.
Vine buscando cobre, pero me encontré ORO. Gracias héroe!.
Juan, gracias por compartir tu conocimiento
Simplemente emocionante averiguar y profundizar nuevos conceptos a medida que avanza el curso. Nuevamente le agradezco por compartir este material de tan gran calidad.
te lo juro que aprendo de programacion a borbotones contigo gracias, saludos dsesde Nicaragua
Una de las mejores explicaciones..Gracias
Gratamente sorprendido con tu forma de explicar
Gracias por tus cursos, a muchos nos sirven y lo apreciamos!!!
Gracias Juan! la explicación es super clara.
Hermano, que explicación tan clara, felicitaciones, no había entendido bien esto de las interfaces. Más claro no puede ser.
Excelente video, AL FIN he podido comprenderlo ¡¡
Explicaciones muy claras. Buen profe!
Grácias por el vídeo,muy bien explicado y muy ameno. Has ganado un nuevo suscriptor!!!
Correre el riesgo de ser repetitivo, pero que nivel de enseñanza, felicitaciones, lo dificil lo haces entender muuuuy facil (perdon por la ortografia). Eres un crack !!!
Muchas gracias por tus videos, son muy buenos. En cuanto a la palabra interfaces, viene del ingles, pero existe en el español, por tanto, es correcto decirlo como se escribe para el español.
Muchas gracias, excelente explicación. Esperando la próxima entrega!
Que calidad tienes para enseñar, eres demasiado bueno. muchas gracias y sólo me queda practicar :)
Buenísimo! Igual, muy didáctico. Valoro mucho tu esfuerzo por este contenido. Un saludo.
Gracias ! Un saludo
Hola Juan! Espectacular una vez más!
Te voy a hacer un pedido. Puedes agregar a este curso el tema genérico de patrones de diseño. Pero no todo el tema, porque hay infinidad de patrones de diseño. Sino, el patrón de diseño que tú utilizas a la hora de diagramar y esquematizar previamente todo, para la realización de un sistema X. Es decir, ya que para programar algo mas o menos serio, no es suficiente conocer todos los temarios de los lenguajes de programación. Todo se cocina en la previa, en la diagramación previa. Muchas gracias por tanto Juan. Saludos Leopoldo.
Más claro imposible
Que buen vídeo crack!!!!!!!!
Muy bueno y claro como siempre. Gracias Juan!
Hola Juan, en el min 22:00, en el writeline, no es necesario usar el símbolo +, puedes poner "... Babieca: {0}", miBabieca.numeroPatas"). donde pone {0} será sustituido por el valor del primer argumento y así sucesivamente si deseas ampliarlo.
ya lo sabe, solo que como el dice que aveces se queda con costumbres de otros lenguajes
siento que veo todo lo que no vi en 5 años de u :v, y esta muyu bien explicado
Buen video.
Excelente manera de explicar, por que no lo publicas en crehana ahí hay muchos cursos y este pegaría al 100%
Hola, excelente..gracias
Cuando hablaban del termino, me imaginaba algo gráfico de pantalla jaja... pero es algo distinto en c#, me imagino que más adelante en el curso se toca el tema de la representación gráfica
En todos los lenguajes las interfaces siempre hablan de lo mismo, suele confundirse muy típicamente con Interfaz gráfica de usuario
Otro ejemplo: lo que he hecho yo es crear una interfaz llamada IAquiferos (sin la diéresis, lógicamente) para que cualquier animal cuyo ecosistema sea el agua la implemente. En ella se encuentra el método Nadar(). De todos los animales de la aplicación (caballo, humano, gorila y ballena) sólo ésta última la implementa). En el caso de añadir anfibios al programa, réptiles de agua, etc. sólo hay que hacer que la implementen.
Excelente video.
Sin embargo no me queda claro cuando a nivel profesional debería usar las interfaces, me gustaría un ejemplo o escenario a nivel laboral dónde se podría hacer uso de ellas.
Un ejemplo comun es en base de datos, puedes crear un interfaz cuyos métodos representen los diferentes estados como consultar, insertar, actualizar y borrar, y esa interfaz la implementas en un clase base de datos y hacer la lógica que requieras para esos métodos, otro ejemplo comun es para las devoluciones de llamadas o callbacks donde esa interfaz te devuelve un valor que puedes usar en X clase, si te preguntas que valor puede ser, pues depende del contexto, pero por ejemplo un móvil darte la ubicación y esa interfaz te dice los datos como longitud y latitud del dispositivo, otro ejemplo en un pagina que consume un servicio web pues esa interfaz te puede traer los datos de un servidor, otro puede ser implementar un patrón de diseño como mvp o mvc donde usualmente se usan interfaces para conectar los datos con la interfaz de usuario UI, etc, etc ,el uso de las interfaces es muy amplio y depende de cada desarrollador como usarlas, obviamente puedes implementar los ejemplos que te puse sin usar interfaces, pero es importante conocerlas y saber usarlas y en el mundo laboral no es la excepción, espero haberte ayudado
@@atherbsc5384 eres un crack excelente tu explicacion de esa misma manera las utilizo
Interfaz es perfectamente válido porque es una palabra inglesa que el castellano ha adoptado, como por ejemplo Fútbol, que es válida tal cual. No hace falta pronunciarla como un inglés.
Un saludo estimados, excelente tu explicacion de C#.
Tengo una duda con respecto a la clase de interfaces. Cúal sería la ventaja de usar la interfaz???
Es decir no veo diferencia si en la clase Caballo por ejemplo, implemento un método "ContarPatas()" y le doy cuerpo a ese método sin necesidad de hacer uso de la interfaz. Ya que al fín y al cabo, estoy escribiendo el método en una clase particular. Hacerlo como método propio de la clase o desde una interfaz pues básicamente fue lo mismo y he ahí mi duda respecto al uso de la interfaz.
Disculpen mi ignorancia respecto al tema, me imagino que detras de las interfaces hay una potente herramienta que aún no domino.
De antemano muchas gracias por las aclaratorias que me puedan facilitar.
Saludos...
Haciéndolo en la propia clase no obligas a implementar el método contarPatas. Imagina que estás creando un programa y quieres que cualquier otro programador se vea obligado a crear el método contarPatas en una clase que herede de la interfaz. Si lo haces en tu propia clase crear el método es opcional. Desde una interfaz es obligatorio. Un saludo!
Ahora lo entiendo. Muchisimas gracias profesor por su ayuda. Quería comentarle que tengo unos vídeos de un curso de C# en ingles. Si quiere puedo facilitarselos para ver que le parecen y si le es util pueda enriquecer el curso de C# que he venido siguiendo en su canal. Cualquier novedad puedo compartirle el drive. Saludos y nuevamente muchas gracias por su tiempo.@@pildorasinformaticas
Muchas gracias por tus videos, por favor podrías decirme de cuantos videos tienes previsto realizar este curso, gracias, un abrazo.
Por favor hermano, regálanos un video mas :)
Magistral...
Gracias!
Interfaces en español existe y en ingles también y se escriben igual solo que es de buen gusto o buenas costumbres pronunciarlo en español si vienes hablando en español y en ingles si vienes hablando en ingles
Me gustaría que hiciera un proytecto final de todo lo que has dado para así ver cómo se usan todos esos conceptos y tambien conectandolo todo a base de datos con sql server
mmmm patas.
Gran vídeo amigo
Genial tu explicación como siempre Juan. Lo único que te quería comentar es que no veo muy acertado cuando dices al principio que implementar es sinónimo de heredar, pues implementar es “aplicar métodos o medidas para poner algo en funcionamiento para que haga alguna cosa” y heredar perse no implica implementar; en mi opinión. Pero muchas gracias por tus fantásticos vídeos que siempre espero con ansiedad. Un saludo desde Canarias.
18:51
entendi toda la implementacion pero no la utilidad, por ejemplo el metodo numeroPatas() no se lo podria haber puesto en cada clase?? por ej en gorila y que retorne 2 : public int numeroPatas(){ return 2;}) y en caballo de la misma manera q retorne 4 , les agradeceria una respuesta, saludos!!
cual seria la diferencia entre crear un void virtual y crear una interfaz
10/10 😊
Hola, tengo una duda, en este caso no se podria haber hecho tambien un metodo base (Mamiferos) y luego en vez de una interfaz hacer otros dos metodos que sean MamiferosTerrestres y MamiferosAcuaticos? o es que no se puede y por eso lo hizo asi, nada tenia esa duda, ojala me puedan ayudar
Con no utilizarlo sería suficiente, como bien dice el video (aunque no de esa forma), pasa lo mismo con muchas interfaces, al final en algunas interfaces no usas todos sus metodos, si por ejemplo en un videojuego estamos haciendo una clase llamada Combate y combate tiene bonificaciones de vida, mana, fuerza, inteligencia, agilidad, etc, sería una locura hacer una interfaz llamada para cada uno de los bonus(IAgilityBonus, IStrenghtBonus, IIntelligenseBonus), te acabas liando de tanta interfaz, por lo que agrupar no siempre es malo, salvo que puedas evitarlo o te veas capaz de evitarlo pero en mi caso prefiero => ICombatBonus y agrupar alli los metodos, los use o no, en lugar de imlementar 10 interfaces separadas solo para una clase llamada Combate.
Eres grande
Puedo hacer que de alguna manera una clase no me herede una característica de otra, pero si las demas? O solo esta seria la unica forma? Saludos
Hola Juan , contenido de calidad como siempre.
Te tengo dos preguntas 1) ¿Las interfaces simplemente pueden contener métodos ? o pueden contener dentro de ellas propiedades , constantes , eventos ,etc y 2) ¿Las interfaces pueden heredar o implementar otra interfaz ?
tu tambien tienes qu poner de tu parte y buscar por tu cuenta, ya se que no hay nada de malo en preguntar, pero tampoco Juan te lo dara todo en la boca.
En una Interface puedes definir métodos,propiedades.indizadores,eventos y puedes implementar dichos miembros con clases con nombre, clases anónimas(en c# no se puede,espero pronto que si) y structs. Para terminar a partir de c#8.0 una interface puede implementar miembros por defecto y definir métodos static.
estoy siguiendo al pie de la letra pero me sale the type or namespace name could not be found (are you missing a using directive or an assembly reference?) respecto a la interface. :(
Gracias por el vídeo. Me he quedado con una duda: Dices que la interfaz obliga a futuros desarrolladores a implementarla si definen nuevas clases, pero yo puedo desarrollar un nuevo mamífero y no poner la interfaz numeroPatas en la declaración. ¿Cómo me está obligando entonces?
Hola marc creo entender tu duda, Es por eso que el uso de las interfaces varia.. Por que podrias declarar la interfaz inmediatamente en la clase mamiferos pero se sabe que no todos los mamiferos tienen patas, Pero por ejemplo si se van a crear nuevas instancias de alguna clase como lo que es "Humanos" Pues al momento de declarar un nuevo humano obligas al desarrollador a que te el numero de patas.
Para poder obligar al desarrollador a implementar algun metodo seria con las CLASES ABSTRACTAS
Tengo una duda por si alguien me la puede responder es que si puedo implementar metodos en las interfaces que no devuelvan algun valor es decir que sean void.Muchas gracias por todo.Excelentes vídeos
¿Cuando dices implementar te refieres a definir el código dentro de la interfaz?...
Aquí vienen dos cosas importantes.
1) una interfaz es un contrato, y los métodos sus firmas, los cuales contienen su nombre, el tipo que devuelve y los parámetros. Un contrato que las clases deben respetar e implementar. En tu interfaz puedes tener métodos void o de cualquier otro tipo.
2) desde C# 8 (Que salio hace algunos meses con .Net Core 3), las interfaces también pueden implementa el código, es decir que las interfaces parecen más clases abstractas que otra cosa, salvo algunas diferencias.
Esto es muy bueno porque te permite herencia múltiple, cosa que no se podía hasta antes de C# 8.
Saludos.
En una Interface puedes definir métodos,propiedades.indizadores,eventos y puedes implementar dichos miembros con clases con nombre, clases anónimas(en c# no se puede,espero pronto que si) y structs. Para terminar a partir de c#8.0 una interface puede implementar miembros por defecto y definir métodos static.
la pregunta más importante es. como aislo la clase interfaz de los futuros programadores, para evitar que sea modificada? y así tenga sentido todo esto
9:00
Hola, espero que estén bien.... tengo una duda ¿por que debo imprimirlo en un CW(objeto.numerodepatas()); .... y no directamente objeto.numerodepatas(); ? alguien que por favor me explique .... muchas gracias
Por el método solo regresa un el numero de patas pero no lo imprime. Por medio del CW, se mostrar ese numero que regresa el método.
Hola Juan, me gustaria ver si se puede implementar en el curso los patrones de diseño, es un tema que estoy viendo en la universidad y me gustaria que me enseñes tu conocimiento gracias.
cambiaron la sintaxis de las interfaces en c#, apenas estoy aprendiendo y seguí al paso todo esto y me daba error, la solucion que pude encontrar es declarar la interfaz como objeto (IMamiferosTerrestres numeroPatas = new Caballo("");), ademas de tener que añadir la interfaz detras del numero de patas (int IMamiferosTerrestres.numerosPatas() => 4;), ya para que imprima el texto solo añadi el mismo console write line pero con el objeto para ingresar al numero de patas (Console.WriteLine("Numero de patas de babieca: " + numeroPatas.numerosPatas());)
(edit: espero que esto este correcto con las nueva sintaxis de interfaces en c# 2022)
Que error te daba? a mi me salio todo bien jiji
pues bien a la verdad!!
Hola Muy interesante cres que puedas sacar los videos mas rapidos, que no tardes compartirnos tus conocimientos
👍
20:54 alto gallo XD
No pretendo empezar una discusión ni mucho menos, pero como persona experimentada en el idioma inglés, puedo decir con certeza que la pronunciación adecuada sería 'in-ter-feis'
Es cierto que lo de la pelicula no era una ballena si no una orca, pero no pasa nada, tampoco te llamaba Wally xDD
yo pensaba que era interfaz grafica
Se dice Interface!!!, interfaz es un ambiente gráfico al usuario
Interface en inglés e interfaz en español.
No existe "interface" en español.
Quien fue el amargado que dio dislike?
Hay que buscarlo y darle caza.
11:42
Mmm... patas 😏
chale yo pensé que interfaz era ya la pantalla lo visual pues jajaj xD
la ballena se llamaba willy
yo considero que algunos humanos si tienen patas :,D
Hola .. das Windows form?
Puedes enseñar shell script en Linux?
NO
no xd
Excelente profesor , pero no sé entiende nada
:)))))
👀
Ballene JAJAJA
Sin saber estanas usando lenguaje Inclusivo
Que innecesario.
Cantidad de patas de Ballena es 0.
Listo, las interfaces son inútiles.
Es broma Weon!!
class vehiculo
{
public virtual void arrancar()
{
string x;
do
{
try
{
System.Console.WriteLine("¿Desea arrancar el motor?");
x = System.Console.ReadLine();
if (x == "si")
{
string y;
try
{
System.Console.WriteLine("El motor esta arrancando");
System.Console.WriteLine("Desea apagar el motor");
y = System.Console.ReadLine();
if (y == "Si" || y == "si")
{
System.Console.WriteLine("Usted ha apagado el motor");
x = "no";
}
else
{
System.Console.WriteLine("El auto sigue arrancando");
x = "si";
}
}
catch (FormatException)
{
y = "no";
}
}
else
{
System.Console.WriteLine("El motor ha sido apagado");
x = "no";
}
}
catch
{
x = "no";
}
}while (x == "si" || x == "Si") ;
}
public virtual void conducir()
{
System.Console.WriteLine("Necesito un motor para conducir");
}
protected void velocidad()
{
System.Console.WriteLine("Soy rapido");
}
}
class avion : vehiculo
{
public override void conducir()
{
System.Console.WriteLine("Mi motor es duradero y casi el mas eficaz");
velocidad();
}
}
class coche : vehiculo
{
public override void conducir()
{
System.Console.WriteLine("No soy el mas eficiente, pero puedo ayudar en tierra y soy mas economico");
velocidad();
}
}
vehiculo carro = new vehiculo();
coche carrito = new coche();
avion avioncito = new avion();
carro.arrancar();
carro.conducir();
carrito.arrancar();
carrito.conducir();
avioncito.arrancar();
avioncito.conducir();
yo lo hice de esta forma...