Actualmente estoy siguiendo este curso y me encanta lo tecnico que explica esta persona , te da una base muy solida para empezar a programar con c#, a lo que va del año aprendi un monton con sus videos, son oro puro tus videos
hola nicolas, yo tambien estoy estudiando. Ya sabias antes algo de programacion ? Yo no, y si, me ha gustado mucho. Luego de este curso que viene para conseguir trabajo en un año mas o menos como backend ? Necesito cambiar de empleo, saludos.
@@cesaraugustomendozayanez9552 Hola Cesar, la verdad si a la escuela que iba enseñaban programacion pero cosas muy basicas, hasta la POO llegamos y vimos otros lenguajes, no tengo experiencia laboral en el rubro, asi que veremos que sale cuando termine este curso , tocara seguir aprendiendo y especializarme en C#
Gracias por enseñarnos, hace un año no tenía idea de programación, gracias a tus cursos pude aprender y me vino genial para mí trabajo (seguridad informática ) Saludos!
Se te agradece mucho la dedicacion y sobre todo se te reconoce que tienes talento para enseñar algo tan interesante y productivo como la programacion. Y añado si se dice implementar, es correcto, incluso si se observa si falta algo y el compilador envia su mensaje con el resaltado en rojo de la sentencia dice alli muy claro, ... no implementa el miembro de interfaz ... eso cuando dentro de la clase no has escrito el metodo declarado dentro de la interfaz que hereda en dicha clase, asi que primero pongan atencion a los detalles antes de corregir señores.
No se si puede ser de ayuda, pero voy a poner un ejemplo de una utilidad que puede tener las interfaces, para la gente que se pasea por los comentarios: Cuando ya sabes un algo de programación y te aventuras a programar, por ejemplo, en unity, descubrirás que usan c# y que en unity ya hay hechas un montón de clases, metodos... todo esto a sido programado por alguien y ese alguien se habrá dado cuenta, en su momento, de que hay cierta clases que darían problemas si no tiene obligatoriamente ciertos métodos, nada te impide programarlo todo desde cero, pero en unity eso ya esta hecho, precisamente para que no pierdas tiempo y puedas dedicar más tiempo a desarrollar tu juego, ademas, si te pones a programarlo todo desde cero muy probablemente te topes con muchos problemas que tendrás que ir resolviendo para poder hacer algo en condiciones, en lo que logras resolver unos cuantos problemas de estos otra persona igual va por su tercer juego terminado, que no digo que no sea recomendable probar, por lo menos para aprender, entonces programando en unity puede ser que sea una buena opción usar interfaces para ciertas cosas y estas te obligaran a usar ciertos métodos, esto de las interfaces tiene pinta de que es algo de programadores para otros programadores.
Así lo entendí yo! como lo expresas en tu última frase! De programadores a otros programadores! A menos por ahora no logro encontrarle el sentido a auto-obligarme a incluir métodos mediante una interface.
@@sebastianpannocchia177 Hace poco ve vi los tutoriales intermedios de c# del canal de Nicosiored y descubrí que utiliza las interfaces para invocar eventos
@@fernandovicent6429 Fijate bro en como el que sea Eventos justo suena a que se deberia hacer algo si salta ese evento,no?Por eso los eventos y las interfaces van ligados!
Es correcto lo que dices en parte. Cuando tienes años programando en le guajes de este tipo como Java, C# etc., te das cuenta que el tema de las interfaces es más complejo. Esto se nota más cuando estudias patrones de diseños y arquitectura de aplicaciones, son temas que no aprenderás en 3 videos, por más bueno que sea Juan para explicar, necesitas incluso leer algún libro sobre esto que es muy interesante. Las interfaces se usan para aplicar Inyección de Dependencias por ejemplo, hacer uso del Polimorfismo en nivel más avanzado, y otros usos que no podría explicar aquí. Pero eso ya se aprenderá con el tiempo. Por ahora, es mejor conocer el lenguaje primeramente.
Bueno, cuando hice un juego en otro lenguaje, implemente la interfaz morir() a todos los personajes(que eran de distintos tipos), mis proyectiles que colisionaban con algún personaje ejecutaba su método morir(), por lo tanto los personajes, sean del tipo q sean tenían q implementar la interfaz morir().
Muchas gracias de verdad por los cursos, me han ayudado mucho a entender los trabajos que me ponen en mí universidad (UTESA, Santiago), saludos desde República Dominicana.
En C# no se utiliza la herencia múltiple (de ahí las interfaces). Dado que las clase SÍ que se heredan se acunó el término implementar para referirse a las interfaces. Es como hablar de argumentos y parámetros: la información es la misma en ambos términos, pero los argumentos envían la información y los parámetros la reciben. Es mucho más fácil tener una conversación cuando cada término ya diferencia una cosa u otra y no da lugar a confusión.
Estoy estudiando de hace dos años javascript pero con esto me hiciste entender javascript con clases / typescript con interfaces y extender , de un mejor modo , aveces no entendia las ideas de extender interfaces y su uso , muy parecido aprender oop , me esta abriendo muchos conceptos . Pensar que estoy cursando una tecnicatura en programacion que me mandan a ver tus videos (el profesor no sabe donde esta parado) , pero me esta sirviendo mucho mas que cualquier otra cosa que haya hecho eso jajaja Lo unico que no me gusta es que muchas de las cosas que tengo que usar de c# como wpf tengo que usar windows jajaja o tener que aprender otro ide como es visual studio , pero me comi 49 videos en 1 semana y me quedo todo, el aprender un nuevo lenguaje se hace mas facil,
Muy buena explicación quedo muy claro, algo que pasa es que solo estan viendo la utilidad en programas simples de 5 o 6 funciones pero la verdadera utilidad viene cuando el programa crece con cientos de funciones, una buena practica sería implementarlo desde el principio para tomarlo como habito, en otras palabras hacer bien las cosas desde el principio pero claro que eso solo se consigue con mucha practica y experiencia, muchas gracias por el curso.
Otra forma de ver a las interfaces es como un contrato, dónde obligas a una clase a tener ciertos métodos e inclusive propiedades, pero ¿Para que se requiere obligar eso?, Para que pueda interactuar con otra clase que, para funcionar correctamente, requiera que se tengan esos métodos y propiedades, los que obligaste a implementar gracias a la interface.
Hola. Entiendo a muchos usuarios, cuando se preguntan cuando tendré la necesidad de utilizar Interfaces. Personalmente he realizado sistemas de juguete para practicar. Y han funcionado perfectamente bien. Se lo he mostrado a un programador y me ha dicho, si, funciona perfecto, pero... esta super mal programado. Entonces una vez mas, es fundamental conocer lo básico de patrones de diseños y los famosos esquemas previos. Ya que de ahí, nos damos cuenta de que manera programar tal o cual cosa de manera correcta. Esa manera correcta va a marcar la diferencia por ejemplo, en que un sistema consuma menos recursos, ademas que lo pueda ver otro programador y entender todo perfectamente, etc. Hoy sigo siendo un super novato en programación. Y en especial porque no tengo ni mas pálida idea de diseño de programación. A partir de ahí, es donde se aplican todas las herramientas de cada lenguaje de programación. Excelente video Juan! Muchas gracias!
entiendo lo que dices! pero sucede como con muchas otras tantas profesiones, a veces se es muy quisquilloso en donde no se lo necesita y muchas otras vienen acarreado el término "muchos recursos" forjado hace 20 años con las prestaciones de "recursos" de esa época.
Yo sabia que es correcto el termino "Implementar" interfaces, ya que al final a cabo quien va a implementar la interfaz sera la clase que "implemente" el codigo de acuerdo a las condiciones que determine la interfaz, de hecho en la documentacion de Microsoft acuñan el termino.
Juan eres el mejor!!! Igual ya lo tienes planteado, pero seria genial que uno de tus proximos cursos sea sobre programacion funcional que esta haciendose muy popular. Y si es con F# mejor que mejor :D
Hola, excelente curso, para mi esta bien decir que una clase implementa una interfaz, me suena raro el hereda. Lo bueno de trabajar con interfaces es cuando lo utilizas junto con el polimorfismo, que para mi ahí está la esencia de la interfaz.
Hola Juan , Buen vídeo , Ya hemos visto en estos dos últimos vídeos interfaces con métodos en su interior , pero haremos ejemplos con interfaces que contengan propiedades y si ese es el caso ¿Por que c# nos permite trabajar con propiedades en las interfaces?
Pienso que la mejor manera de ver la utilidad de una interfaz es cuando un método de una clase externa, como Program, tiene como parámetro una interfaz: eso garantiza que puedo llamar esa función con cualquier clase que implementa esa interfaz sin que el programa se rompa. La inyección de dependencias se basa en este principio.
Hola Juan, interesante lo de la ambiguedad en el metodo de las 2 interfases y es bueno saber que hacer en esos casos, pero una solucion rapida seria cambiar el nombre minimamente....
Sí, así es. Y si la aplicación es tuya sería lo más evidente. El problema viene cuando la aplicación es compleja, tiene más de 30 interfaces y además las han construido 7 programadores diferentes. En ese caso lo de cambiar el nombre puede que no sea tan sencillo. No hay que perder de vista la modularización y reutilización de código. Un saludo!
Implementar es el término correcto cuando se usa una intefaz. De Microsoft, C# "An interface in C# contains definitions for a group of related functionalities that a non-abstract class or a struct must *implement*."
Buenos los videos. Salvo una observacion. Desde la entrega 49 hasta la 51, los videos no se pueden ver. Pero cuando accedo desde el movil, si se ven. Gracias
Si creamos uno varios métodos dentro de una clase (dentro de class Mamíferos), las clases que hereden de class Mamíferos (por ejemplo class Caballo) adoptarían todos los métodos de Mamíferos sin necesidad de desarrollarlos dentro de la class Caballo. Sin embargo, a la hora de heredar de una interfaz, ésta si que obliga al programador a desarrollar los métodos previstos dentro de la interfaz, como el numero de patas, que en este caso, además de estar definido en la interfaz iMamiferosTerrestres, también es necesario incluirlo en la class Caballo para su completo desarrollo. Esto es lo que he entendido de las interfaces y su diferencia con las clases
una pregunta. entiendo perfectamente el tema de las interfaces , sobre todo cuando se trabaja en equipo. ahora bien, me imagino en la situación de que hay muuuuchas clases que usan tal interfaz y bueno que me dan o doy el código esqueleto, Hay alguna manera de que se pueda rellenar los métodos de la interface declarada en la declaración de la clase con la que se está trabajando. gracias, un saludo
este curso me sirve si quiero aprender gdscript? es que no eh encontrado un curso de gdscript tan completo como este de c#, y eh visto que dicen que los lenguajes se parecen
Papu, creo que se refiere a que Boolean es como la clase envolvente y bool es su tipo 'primitivo' al igual que con string, String es la clase con métodos y string es sólo un tipo primitivo, no puede usar métodos como su clase envolvente. Clase envolvente es un concepto de Java xd
Obviamente se dice implementar porque es justamente lo que estás haciendo, la interfaz es un contrato a cumplir y te obliga a implementar esos métodos y campos en esa clase, es decir, declararlos y definirlos. No está heredando nada ya que esa clase no es una subclase de esa interfaz, es decir no es un subtipo. Solo que implementa esa funcionalidad que el programador ha tenido que definir. Algo así como los mixin pero en estos últimos no hay porque definirlos porque ya tienen una definición y lo que se hace es agregar funcionalidad.
Hola a todos, gracias por los vídeos tengo una consulta, se que no tiene que ver con el video pero quiero meterle mano al CMS Drupal, me podrías recomendar por que curso empiezo para poder sacarle todo el provecho posible... programación conocimientos lo mínimo o casi nada salvo algo de HTML y CSS autodidacta con tu curso HTML y algunos libros.. Gracias ...
@@pildorasinformaticas Graciassssss, me e puesto a ver el video de orden para aprender, asi que estoy en un curso basico de HTML y ahora voy Por el HTML5, luego ire por el CSS3, javascript y de ahi terminare con el PHP. Gracias otra vez por los cursos que subes, es un trabajo muy duro asi que solo podemos ser agradecidos que compartas tus conocimientos. Saludos desde Ecuador.
Me da que eso de las interfaces es para el desarrollo de juegos donde hay muchos personajes con diferentes roles y está desarrollado por un equipo de programadores hay que coordinar. Cada coordinador tiene un conjunto de interfaces y todos reciben las mismas clases, pero cada programdor implementa la interface que recibe por el que dirija la programación. Eso es lo que he entendido en este video. Pero si yo soy el único programador de la aplicación, no parece que tenga mucho sentido, salvo que antes de programar plantee un estrategia y cuente con interfaces en el desarrollo de un esquema. No sé. Ya veré.
Cual es el problema de usar la palabra implementar? soy de .net y siempre he escuchado el mismo termino. Buenos los cursos también le sigo es su pagina.
Posible utilidad / razon de ser de la Interface ?: quizas... sea porque la OOP fue diseñada para no admitir herencia multiple. Luego, por señaladas necesidades, una clase necesito que si fuera posible heredar de otra/s clases....Bueno pues entonces nos "inventamos" las interfaces, que son clases pero no son clases. Y asi cubrimos esta necesidad. ? No quisiera ser mal pensado .....
Hola a todos: Yo como sigo con lo mio, estoy intentando ver como aplicar el concepto de "interface" en mi objeto o clase "Valve". Como dije, en la industria y control de procesos hay diferentes tipos de válvulas, desde una manual sin finales de carrera, manual con finales de carrera..... hasta la más complicada que sea proporcional con feedback analógico y 4 o más Finales de carreras . Pues por ejemplo mi instancia es -- > "INumeroFinalesCarrera". Esto cada vez se complica ++++. Pregunta a quien quiera comentar: Harías una subclase de Valvula con PID (lazo de control) -- > y el PID que sea una instancia? (claro que después existe el tipo de lazo de control: que podría ser en cascada, maestro-esclavo).....
Yo sigo sin entender exactamente como es que una interface te obliga a ser implementada, si cuando creas una clase y la heredas a otra todos los metodos se heredan.
Suele ser una pregunta común debido a que no se suele conocer o tener en cuenta una diferencia clave entre lo que hace la herencia de clases y lo que hace la implementación de una interfaz en C#. Cuando heredas una clase en C#, la clase hija hereda automáticamente todos los métodos, propiedades y campos definidos en la clase base (excepto los que son privados). Si esos métodos están ya implementados en la clase base, entonces la clase hija los "obtiene" tal como están. La clase hija puede utilizar esos métodos tal cual o bien sobrescribirlos (si son virtual o si están definidos como abstract en la clase base). Sin embargo, una interfaz en C# no proporciona ninguna implementación, solo define un contrato que las clases que implementan esa interfaz deben seguir. Las interfaces no tienen lógica de código, solo declaran qué métodos, propiedades o eventos debe tener una clase que implemente esa interfaz. Cuando una clase implementa una interfaz, está obligada a implementar todos los métodos y propiedades definidos en esa interfaz. Esto se debe a que una interfaz no define cómo deben comportarse esos métodos, sino que solo dice "debes tener estos métodos". Cuando una clase implementa una interfaz, está diciendo: "Yo me comprometo a seguir este contrato". Alguien que use esa clase puede estar dependiendo de que implemente todos los métodos y propiedades definidos en la interfaz. Las interfaces son una forma de garantizar que las clases que implementan ciertos contratos siempre tengan los métodos especificados, aunque la lógica detrás de esos métodos pueda variar según la clase. Espero haber aclarado algo. ¡Saludos!
Buenas joseph, claro que podría, pero imaginate que hay otra parte de la aplicación que utiliza a los mamiferos y algúno de los métodos que en teoría debe tener si se cumpliera con la interfaz. Pues el programa daría algún error. Entonces, vendria el jefe y simplemente con decirte, oye, debes implementar esta interfaz. Tu ya sabes que tienes que "desarrollar" los metodos que en ella hay y con eso el problema queda resuelto. Porque tu clase cumple con todos los contratos que hay por la aplicación. Que pasa si no existe la interfaz? habria algún documento por ahi donde dice que para que la aplicación funcione bien, los mamiferos deben tener un metodo X que devuelva un tipo de dato X y que reciba por parametro X, otro medoto X, que devuelva X etc etc. Seria mas propensa al fallo. Es como una forma de tenerlo documentado y diseñado en la misma aplicación para simplificar el desarrollo. o eso creo 😅
pero no le veo la utilidad ya que el futuro programador puede si se le da la gana heredar la interface IMamiferosTerrestres a la clase ballena, o si quiere puede simplemente no heredar la interface a la clase caballo, básicamente no se le esta obligando al programador.
Primer profesor que explica sin que me de sueño, super ágil y entretenido, se entiende bien y si no queda claro da gusto volver a ver el video.
XD, sólo que son módulos muy largos, yo lo veo a velocidad 2x :3
Actualmente estoy siguiendo este curso y me encanta lo tecnico que explica esta persona , te da una base muy solida para empezar a programar con c#, a lo que va del año aprendi un monton con sus videos, son oro puro tus videos
Gracias por tu comentario. Saludos!
hola nicolas, yo tambien estoy estudiando. Ya sabias antes algo de programacion ? Yo no, y si, me ha gustado mucho. Luego de este curso que viene para conseguir trabajo en un año mas o menos como backend ? Necesito cambiar de empleo, saludos.
@@cesaraugustomendozayanez9552 Hola Cesar, la verdad si a la escuela que iba enseñaban programacion pero cosas muy basicas, hasta la POO llegamos y vimos otros lenguajes, no tengo experiencia laboral en el rubro, asi que veremos que sale cuando termine este curso , tocara seguir aprendiendo y especializarme en C#
Gracias por enseñarnos, hace un año no tenía idea de programación, gracias a tus cursos pude aprender y me vino genial para mí trabajo (seguridad informática )
Saludos!
Gracias Profe por su contenido, realmente explica muy bien. La verdad que estoy enamorada de su inteligencia y de sus cursos. Saludos desde Argentina
Se te agradece mucho la dedicacion y sobre todo se te reconoce que tienes talento para enseñar algo tan interesante y productivo como la programacion. Y añado si se dice implementar, es correcto, incluso si se observa si falta algo y el compilador envia su mensaje con el resaltado en rojo de la sentencia dice alli muy claro, ... no implementa el miembro de interfaz ... eso cuando dentro de la clase no has escrito el metodo declarado dentro de la interfaz que hereda en dicha clase, asi que primero pongan atencion a los detalles antes de corregir señores.
No se si puede ser de ayuda, pero voy a poner un ejemplo de una utilidad que puede tener las interfaces, para la gente que se pasea por los comentarios:
Cuando ya sabes un algo de programación y te aventuras a programar, por ejemplo, en unity, descubrirás que usan c# y que en unity ya hay hechas un montón de clases, metodos...
todo esto a sido programado por alguien y ese alguien se habrá dado cuenta, en su momento, de que hay cierta clases que darían problemas si no tiene obligatoriamente ciertos métodos,
nada te impide programarlo todo desde cero, pero en unity eso ya esta hecho, precisamente para que no pierdas tiempo y puedas dedicar más tiempo a desarrollar tu juego, ademas, si te pones a programarlo todo desde cero muy probablemente te topes con muchos problemas que tendrás que ir resolviendo para poder hacer algo en condiciones, en lo que logras resolver unos cuantos problemas de estos otra persona igual va por su tercer juego terminado, que no digo que no sea recomendable probar, por lo menos para aprender, entonces programando en unity puede ser que
sea una buena opción usar interfaces para ciertas cosas y estas te obligaran a usar ciertos métodos, esto de las interfaces tiene pinta de que es algo de programadores para otros programadores.
Así lo entendí yo! como lo expresas en tu última frase! De programadores a otros programadores! A menos por ahora no logro encontrarle el sentido a auto-obligarme a incluir métodos mediante una interface.
@@sebastianpannocchia177 Hace poco ve vi los tutoriales intermedios de c# del canal de Nicosiored y descubrí que utiliza las interfaces para invocar eventos
@@fernandovicent6429 Fijate bro en como el que sea Eventos justo suena a que se deberia hacer algo si salta ese evento,no?Por eso los eventos y las interfaces van ligados!
Es correcto lo que dices en parte. Cuando tienes años programando en le guajes de este tipo como Java, C# etc., te das cuenta que el tema de las interfaces es más complejo. Esto se nota más cuando estudias patrones de diseños y arquitectura de aplicaciones, son temas que no aprenderás en 3 videos, por más bueno que sea Juan para explicar, necesitas incluso leer algún libro sobre esto que es muy interesante. Las interfaces se usan para aplicar Inyección de Dependencias por ejemplo, hacer uso del Polimorfismo en nivel más avanzado, y otros usos que no podría explicar aquí. Pero eso ya se aprenderá con el tiempo. Por ahora, es mejor conocer el lenguaje primeramente.
Bueno, cuando hice un juego en otro lenguaje, implemente la interfaz morir() a todos los personajes(que eran de distintos tipos), mis proyectiles que colisionaban con algún personaje ejecutaba su método morir(), por lo tanto los personajes, sean del tipo q sean tenían q implementar la interfaz morir().
No hay un profesor igual.
Gracias.
Muchas gracias de verdad por los cursos, me han ayudado mucho a entender los trabajos que me ponen en mí universidad (UTESA, Santiago), saludos desde República Dominicana.
Me alegro de que los vídeos sean de interés. Un saludo!
En C# no se utiliza la herencia múltiple (de ahí las interfaces). Dado que las clase SÍ que se heredan se acunó el término implementar para referirse a las interfaces. Es como hablar de argumentos y parámetros: la información es la misma en ambos términos, pero los argumentos envían la información y los parámetros la reciben. Es mucho más fácil tener una conversación cuando cada término ya diferencia una cosa u otra y no da lugar a confusión.
Excelente aporte ;-)
Estoy estudiando de hace dos años javascript pero con esto me hiciste entender javascript con clases / typescript con interfaces y extender , de un mejor modo , aveces no entendia las ideas de extender interfaces y su uso , muy parecido aprender oop , me esta abriendo muchos conceptos . Pensar que estoy cursando una tecnicatura en programacion que me mandan a ver tus videos (el profesor no sabe donde esta parado) , pero me esta sirviendo mucho mas que cualquier otra cosa que haya hecho eso jajaja
Lo unico que no me gusta es que muchas de las cosas que tengo que usar de c# como wpf tengo que usar windows jajaja o tener que aprender otro ide como es visual studio , pero me comi 49 videos en 1 semana y me quedo todo, el aprender un nuevo lenguaje se hace mas facil,
Increíble explicación, gracias por este vídeo.
Gracias!!! Siempre muy claras las explicaciones, quedo a la espera del próximo. Saludos
Gracias por tu tiempo hermano.
me esta gustando un montón el curso y estoy aprendiendo un montón también. gracias por los cursos
Excelente quizas, no tengo mucha entradas aqui, estoy siguiendo tu video, eres muy bueno en lo que haces, felicidadez!....
Muy buena explicación quedo muy claro, algo que pasa es que solo estan viendo la utilidad en programas simples de 5 o 6 funciones pero la verdadera utilidad viene cuando el programa crece con cientos de funciones, una buena practica sería implementarlo desde el principio para tomarlo como habito, en otras palabras hacer bien las cosas desde el principio pero claro que eso solo se consigue con mucha practica y experiencia, muchas gracias por el curso.
Otra forma de ver a las interfaces es como un contrato, dónde obligas a una clase a tener ciertos métodos e inclusive propiedades, pero ¿Para que se requiere obligar eso?, Para que pueda interactuar con otra clase que, para funcionar correctamente, requiera que se tengan esos métodos y propiedades, los que obligaste a implementar gracias a la interface.
Hola. Entiendo a muchos usuarios, cuando se preguntan cuando tendré la necesidad de utilizar Interfaces.
Personalmente he realizado sistemas de juguete para practicar. Y han funcionado perfectamente bien. Se lo he mostrado a un programador y me ha dicho, si, funciona perfecto, pero... esta super mal programado. Entonces una vez mas, es fundamental conocer lo básico de patrones de diseños y los famosos esquemas previos. Ya que de ahí, nos damos cuenta de que manera programar tal o cual cosa de manera correcta. Esa manera correcta va a marcar la diferencia por ejemplo, en que un sistema consuma menos recursos, ademas que lo pueda ver otro programador y entender todo perfectamente, etc. Hoy sigo siendo un super novato en programación. Y en especial porque no tengo ni mas pálida idea de diseño de programación. A partir de ahí, es donde se aplican todas las herramientas de cada lenguaje de programación.
Excelente video Juan! Muchas gracias!
entiendo lo que dices! pero sucede como con muchas otras tantas profesiones, a veces se es muy quisquilloso en donde no se lo necesita y muchas otras vienen acarreado el término "muchos recursos" forjado hace 20 años con las prestaciones de "recursos" de esa época.
Muy buen vidio y explicación (Y) Aprendiendo en 2020 Contigo muchas gracias por este curso tan bueno
Antes de reproducir sus videos les doy like, siempre.
Yo sabia que es correcto el termino "Implementar" interfaces, ya que al final a cabo quien va a implementar la interfaz sera la clase que "implemente" el codigo de acuerdo a las condiciones que determine la interfaz, de hecho en la documentacion de Microsoft acuñan el termino.
Gracias por todo el tiempo que dedicas a enseñar. Si pudieras hacer un curso sobre Oracle estaría mucho más agradecido de lo que ya estoy.
Buenos videos, en especial como este, que te dejan con esas ganas de resolver dudas que te llaman mucho la atencion jajaja
Juan eres el mejor!!! Igual ya lo tienes planteado, pero seria genial que uno de tus proximos cursos sea sobre programacion funcional que esta haciendose muy popular. Y si es con F# mejor que mejor :D
Gracias por tus videos, me han ayudado mucho!
control + . para implementar las interfaz mas rapido
Buen video :3
wao ahora si me queda claro muchas gracias!!
Concuerdo con el término de implementar... es así como se le llama en la mayoría de otro lenguajes POO.
Hola, excelente curso, para mi esta bien decir que una clase implementa una interfaz, me suena raro el hereda. Lo bueno de trabajar con interfaces es cuando lo utilizas junto con el polimorfismo, que para mi ahí está la esencia de la interfaz.
Hola Juan , Buen vídeo , Ya hemos visto en estos dos últimos vídeos interfaces con métodos en su interior , pero haremos ejemplos con interfaces que contengan propiedades y si ese es el caso ¿Por que c# nos permite trabajar con propiedades en las interfaces?
Pienso que la mejor manera de ver la utilidad de una interfaz es cuando un método de una clase externa, como Program, tiene como parámetro una interfaz: eso garantiza que puedo llamar esa función con cualquier clase que implementa esa interfaz sin que el programa se rompa. La inyección de dependencias se basa en este principio.
Hola Juan, interesante lo de la ambiguedad en el metodo de las 2 interfases y es bueno saber que hacer en esos casos, pero una solucion rapida seria cambiar el nombre minimamente....
Sí, así es. Y si la aplicación es tuya sería lo más evidente. El problema viene cuando la aplicación es compleja, tiene más de 30 interfaces y además las han construido 7 programadores diferentes. En ese caso lo de cambiar el nombre puede que no sea tan sencillo. No hay que perder de vista la modularización y reutilización de código. Un saludo!
También me gustaría mencionar que una de las utilidades de las Interfaces es resolver el problema de herencia múltiple en C#
Hola saludos! Quisiera saber que tiene de diferencia string a String mayuscula la letra y en donde se usa cada uno de estas propiedades.Gracias
Implementar es el término correcto cuando se usa una intefaz. De Microsoft, C# "An interface in C# contains definitions for a group of related functionalities that a non-abstract class or a struct must *implement*."
Buenos los videos. Salvo una observacion. Desde la entrega 49 hasta la 51, los videos no se pueden ver. Pero cuando accedo desde el movil, si se ven. Gracias
Gracias!
Si creamos uno varios métodos dentro de una clase (dentro de class Mamíferos), las clases que hereden de class Mamíferos (por ejemplo class Caballo) adoptarían todos los métodos de Mamíferos sin necesidad de desarrollarlos dentro de la class Caballo. Sin embargo, a la hora de heredar de una interfaz, ésta si que obliga al programador a desarrollar los métodos previstos dentro de la interfaz, como el numero de patas, que en este caso, además de estar definido en la interfaz iMamiferosTerrestres, también es necesario incluirlo en la class Caballo para su completo desarrollo. Esto es lo que he entendido de las interfaces y su diferencia con las clases
una pregunta.
entiendo perfectamente el tema de las interfaces , sobre todo cuando se trabaja en equipo. ahora bien, me imagino en la situación de que hay muuuuchas clases que usan tal interfaz y bueno que me dan o doy el código esqueleto, Hay alguna manera de que se pueda rellenar los métodos de la interface declarada en la declaración de la clase con la que se está trabajando.
gracias,
un saludo
Muy claro gracias!!! :D
Se ve esa influencia de "La Granja de Zenon" en la programacion, "Caballo Percheron" jaja
Profesor si uno quiere aprender seguridad informática que lenguajes son usados o están orientados a la seguridad informática gracias
Todos. Pero sobre todo los 10 primeros del índice TIOBE que lo tienes aquí: www.tiobe.com/tiobe-index/
este curso me sirve si quiero aprender gdscript? es que no eh encontrado un curso de gdscript tan completo como este de c#, y eh visto que dicen que los lenguajes se parecen
¿que diferencia hay entre usar boolean y bool como el profesor utilizó? o ¿son dos tipos de datos iguales como sucede con "string" y "String?
Papu, creo que se refiere a que Boolean es como la clase envolvente y bool es su tipo 'primitivo' al igual que con string, String es la clase con métodos y string es sólo un tipo primitivo, no puede usar métodos como su clase envolvente. Clase envolvente es un concepto de Java xd
Super.
Obviamente se dice implementar porque es justamente lo que estás haciendo, la interfaz es un contrato a cumplir y te obliga a implementar esos métodos y campos en esa clase, es decir, declararlos y definirlos. No está heredando nada ya que esa clase no es una subclase de esa interfaz, es decir no es un subtipo. Solo que implementa esa funcionalidad que el programador ha tenido que definir. Algo así como los mixin pero en estos últimos no hay porque definirlos porque ya tienen una definición y lo que se hace es agregar funcionalidad.
Gracias
y si me modifican la interfaz porque quieren trabajar el programa a su pinta?, hay forma de que no se pueda modificar, bloquear o algo así?
Saludos, vengo siguiendo el curso desde hace un tiempo atrás y es muy interesante. Cuantos videos faltan para culminar?
Hola a todos, gracias por los vídeos tengo una consulta, se que no tiene que ver con el video pero quiero meterle mano al CMS Drupal, me podrías recomendar por que curso empiezo para poder sacarle todo el provecho posible... programación conocimientos lo mínimo o casi nada salvo algo de HTML y CSS autodidacta con tu curso HTML y algunos libros.. Gracias ...
Recomendable PHP/MySql aunque lo mejor por supuesto es hacer un curso específico de Drupal. Un saludo!
@@pildorasinformaticas Graciassssss, me e puesto a ver el video de orden para aprender, asi que estoy en un curso basico de HTML y ahora voy Por el HTML5, luego ire por el CSS3, javascript y de ahi terminare con el PHP. Gracias otra vez por los cursos que subes, es un trabajo muy duro asi que solo podemos ser agradecidos que compartas tus conocimientos. Saludos desde Ecuador.
Tiene similitud con las clases abstractas
En conclusión, con Interfaz es evitar usar herencia múltiple?.
Me da que eso de las interfaces es para el desarrollo de juegos donde hay muchos personajes con diferentes roles y está desarrollado por un equipo de programadores hay que coordinar. Cada coordinador tiene un conjunto de interfaces y todos reciben las mismas clases, pero cada programdor implementa la interface que recibe por el que dirija la programación. Eso es lo que he entendido en este video. Pero si yo soy el único programador de la aplicación, no parece que tenga mucho sentido, salvo que antes de programar plantee un estrategia y cuente con interfaces en el desarrollo de un esquema. No sé. Ya veré.
Cual es el problema de usar la palabra implementar? soy de .net y siempre he escuchado el mismo termino. Buenos los cursos también le sigo es su pagina.
Una duda. ¿No se podría declarar una propiedad de clase en una interfaz?
Al parecer en C# no se puede(solo metodos).En Java si que te deja,pero solo son constantes,nunca variables.Un saludo
Posible utilidad / razon de ser de la Interface ?: quizas... sea porque la OOP fue diseñada para no admitir herencia multiple. Luego, por señaladas necesidades, una clase necesito que si fuera posible heredar de otra/s clases....Bueno pues entonces nos "inventamos" las interfaces, que son clases pero no son clases. Y asi cubrimos esta necesidad. ? No quisiera ser mal pensado .....
En realidad es asi XD
Hola a todos: Yo como sigo con lo mio, estoy intentando ver como aplicar el concepto de "interface" en mi objeto o clase "Valve". Como dije, en la industria y control de procesos hay diferentes tipos de válvulas, desde una manual sin finales de carrera, manual con finales de carrera..... hasta la más complicada que sea proporcional con feedback analógico y 4 o más Finales de carreras . Pues por ejemplo mi instancia es -- > "INumeroFinalesCarrera". Esto cada vez se complica ++++. Pregunta a quien quiera comentar: Harías una subclase de Valvula con PID (lazo de control) -- > y el PID que sea una instancia? (claro que después existe el tipo de lazo de control: que podría ser en cascada, maestro-esclavo).....
Vale
ups, si que esta complejo, y no es por como lo explica es que uno esta nuevo en esto y se les enreda como serpiente asustada.
Yo sigo sin entender exactamente como es que una interface te obliga a ser implementada, si cuando creas una clase y la heredas a otra todos los metodos se heredan.
Suele ser una pregunta común debido a que no se suele conocer o tener en cuenta una diferencia clave entre lo que hace la herencia de clases y lo que hace la implementación de una interfaz en C#.
Cuando heredas una clase en C#, la clase hija hereda automáticamente todos los métodos, propiedades y campos definidos en la clase base (excepto los que son privados). Si esos métodos están ya implementados en la clase base, entonces la clase hija los "obtiene" tal como están. La clase hija puede utilizar esos métodos tal cual o bien sobrescribirlos (si son virtual o si están definidos como abstract en la clase base).
Sin embargo, una interfaz en C# no proporciona ninguna implementación, solo define un contrato que las clases que implementan esa interfaz deben seguir. Las interfaces no tienen lógica de código, solo declaran qué métodos, propiedades o eventos debe tener una clase que implemente esa interfaz.
Cuando una clase implementa una interfaz, está obligada a implementar todos los métodos y propiedades definidos en esa interfaz. Esto se debe a que una interfaz no define cómo deben comportarse esos métodos, sino que solo dice "debes tener estos métodos".
Cuando una clase implementa una interfaz, está diciendo: "Yo me comprometo a seguir este contrato". Alguien que use esa clase puede estar dependiendo de que implemente todos los métodos y propiedades definidos en la interfaz. Las interfaces son una forma de garantizar que las clases que implementan ciertos contratos siempre tengan los métodos especificados, aunque la lógica detrás de esos métodos pueda variar según la clase.
Espero haber aclarado algo. ¡Saludos!
🏇
Las ballenas si saltan, salen del agua para respirar y eso se puede considerar salto. 😂
¿Pero un programador no podría simplemente dejar de heredar una interface y entonces no estaria obligado a desarrollar sus métodos? Entonces...
Buenas joseph, claro que podría, pero imaginate que hay otra parte de la aplicación que utiliza a los mamiferos y algúno de los métodos que en teoría debe tener si se cumpliera con la interfaz. Pues el programa daría algún error. Entonces, vendria el jefe y simplemente con decirte, oye, debes implementar esta interfaz. Tu ya sabes que tienes que "desarrollar" los metodos que en ella hay y con eso el problema queda resuelto. Porque tu clase cumple con todos los contratos que hay por la aplicación.
Que pasa si no existe la interfaz? habria algún documento por ahi donde dice que para que la aplicación funcione bien, los mamiferos deben tener un metodo X que devuelva un tipo de dato X y que reciba por parametro X, otro medoto X, que devuelva X etc etc. Seria mas propensa al fallo.
Es como una forma de tenerlo documentado y diseñado en la misma aplicación para simplificar el desarrollo.
o eso creo 😅
@@Federrocky muchas gracias por responder, me ayudó a entenderlo
el humano si es un animal, seria bueno ir cambiando esos aspectos egocentristas como especie en relacion a nuestro entorno
👀
pero no le veo la utilidad ya que el futuro programador puede si se le da la gana heredar la interface IMamiferosTerrestres a la clase ballena, o si quiere puede simplemente no heredar la interface a la clase caballo, básicamente no se le esta obligando al programador.