Curso C#. Interfaces I. Vídeo 48

Поділитися
Вставка
  • Опубліковано 17 гру 2024

КОМЕНТАРІ • 113

  • @2010chalupa
    @2010chalupa 2 роки тому +24

    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.

    • @CaballoLoco666
      @CaballoLoco666 Рік тому

      Hola soy de Nicaragua, queria saber si la empresa en la que trabajas esta en Nicaragua o no

  • @JoNySeMaTaR
    @JoNySeMaTaR 3 роки тому +25

    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.

  • @laiconlaf9093
    @laiconlaf9093 4 роки тому +4

    Le estoy metiendo 5 horas por día a tus videos, muy buenos

  • @tempest0421
    @tempest0421 4 місяці тому

    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%

  • @carlramirez9707
    @carlramirez9707 Рік тому +1

    Como este hombre explica la programación, no lo hace nadie. Wow que vocación!

  • @wilfredofc675
    @wilfredofc675 6 місяців тому

    Como siempre, e logrado entenderlo muy bien gracias a tan buena explicacionn
    Mil gracias Juan!!!

  • @marcomasciulli705
    @marcomasciulli705 3 роки тому

    Sos un maestro con todas las letras

  • @isidorocanones2954
    @isidorocanones2954 4 роки тому +10

    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!

  • @JoseCruz-qs1pw
    @JoseCruz-qs1pw 3 роки тому

    Entendido a la primera, continuamos!

  • @sebasmussi9688
    @sebasmussi9688 2 роки тому

    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.

  • @hectortejada8478
    @hectortejada8478 5 років тому +42

    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.

  • @rogermartinez333
    @rogermartinez333 2 роки тому +1

    Como siempre excelente tutor, y demuestras mucha dedicación en tus videos, te felicito y gracias !!!!

  • @Francisco-rh5qg
    @Francisco-rh5qg 5 років тому +12

    Muchas gracias HERMANO, por favor no te olvides de la siguiente parte.

  • @pierojav4310
    @pierojav4310 Рік тому +3

    Vine buscando cobre, pero me encontré ORO. Gracias héroe!.

  • @chambapineda9687
    @chambapineda9687 Рік тому

    Juan, gracias por compartir tu conocimiento

  • @mr.prince4297
    @mr.prince4297 5 років тому +1

    Simplemente emocionante averiguar y profundizar nuevos conceptos a medida que avanza el curso. Nuevamente le agradezco por compartir este material de tan gran calidad.

  • @carlossalinas4254
    @carlossalinas4254 2 роки тому

    te lo juro que aprendo de programacion a borbotones contigo gracias, saludos dsesde Nicaragua

  • @darwinsangamapilco1376
    @darwinsangamapilco1376 3 роки тому

    Una de las mejores explicaciones..Gracias

  • @edwardalexanderpinedamarin429
    @edwardalexanderpinedamarin429 4 роки тому

    Gratamente sorprendido con tu forma de explicar

  • @alfa1055
    @alfa1055 4 роки тому +1

    Gracias por tus cursos, a muchos nos sirven y lo apreciamos!!!

  • @diegoospina9069
    @diegoospina9069 Рік тому

    Gracias Juan! la explicación es super clara.

  • @oscarjair976
    @oscarjair976 3 роки тому

    Hermano, que explicación tan clara, felicitaciones, no había entendido bien esto de las interfaces. Más claro no puede ser.

  • @javiermadi4636
    @javiermadi4636 2 роки тому

    Excelente video, AL FIN he podido comprenderlo ¡¡

  • @santiagobedoyaa.8197
    @santiagobedoyaa.8197 4 роки тому +1

    Explicaciones muy claras. Buen profe!

  • @bronha2006
    @bronha2006 4 роки тому

    Grácias por el vídeo,muy bien explicado y muy ameno. Has ganado un nuevo suscriptor!!!

  • @MosheFischman
    @MosheFischman 2 роки тому

    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 !!!

  • @InfQui
    @InfQui 2 роки тому

    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.

  • @alejandrovasquez6751
    @alejandrovasquez6751 5 років тому +1

    Muchas gracias, excelente explicación. Esperando la próxima entrega!

  • @davjmz5847
    @davjmz5847 5 років тому

    Que calidad tienes para enseñar, eres demasiado bueno. muchas gracias y sólo me queda practicar :)

  • @AlejandroHernandez-hx9mh
    @AlejandroHernandez-hx9mh 4 роки тому

    Buenísimo! Igual, muy didáctico. Valoro mucho tu esfuerzo por este contenido. Un saludo.

  • @Mrleopola
    @Mrleopola 5 років тому +3

    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.

  • @ldavidrs
    @ldavidrs 4 роки тому

    Más claro imposible

  • @johanpalaciose
    @johanpalaciose 3 роки тому

    Que buen vídeo crack!!!!!!!!

  • @raulnardone7062
    @raulnardone7062 5 років тому

    Muy bueno y claro como siempre. Gracias Juan!

  • @zegameus
    @zegameus 5 років тому

    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.

    • @brayan2063
      @brayan2063 4 роки тому

      ya lo sabe, solo que como el dice que aveces se queda con costumbres de otros lenguajes

  • @Jpkuro
    @Jpkuro 2 роки тому

    siento que veo todo lo que no vi en 5 años de u :v, y esta muyu bien explicado

  • @stefanoriosferrer1672
    @stefanoriosferrer1672 Рік тому

    Buen video.

  • @quintoaso
    @quintoaso 3 роки тому

    Excelente manera de explicar, por que no lo publicas en crehana ahí hay muchos cursos y este pegaría al 100%

  • @migueltop6471
    @migueltop6471 5 років тому +1

    Hola, excelente..gracias

  • @Aprendder
    @Aprendder 4 роки тому +21

    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

    • @alexrigar
      @alexrigar 2 роки тому +1

      En todos los lenguajes las interfaces siempre hablan de lo mismo, suele confundirse muy típicamente con Interfaz gráfica de usuario

  • @Jusilus
    @Jusilus 5 років тому

    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.

  • @julianlopez1610
    @julianlopez1610 2 роки тому +5

    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.

    • @atherbsc5384
      @atherbsc5384 2 роки тому +2

      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

    • @agentsmith8434
      @agentsmith8434 2 роки тому

      @@atherbsc5384 eres un crack excelente tu explicacion de esa misma manera las utilizo

  • @guindas2165
    @guindas2165 5 років тому

    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.

  • @joseusechec.7710
    @joseusechec.7710 5 років тому +6

    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...

    • @pildorasinformaticas
      @pildorasinformaticas  5 років тому +6

      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!

    • @joseusechec.7710
      @joseusechec.7710 5 років тому +1

      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

  • @genarodelgado2872
    @genarodelgado2872 5 років тому +1

    Muchas gracias por tus videos, por favor podrías decirme de cuantos videos tienes previsto realizar este curso, gracias, un abrazo.

  • @Francisco-rh5qg
    @Francisco-rh5qg 5 років тому +2

    Por favor hermano, regálanos un video mas :)

  • @Luishervic
    @Luishervic Рік тому

    Magistral...

  • @nancynardelli5466
    @nancynardelli5466 Рік тому

    Gracias!

  • @alejandroking8519
    @alejandroking8519 2 роки тому

    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

  • @weslinmartinez1802
    @weslinmartinez1802 5 років тому

    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

  • @javierruizdiaz5724
    @javierruizdiaz5724 4 роки тому

    mmmm patas.
    Gran vídeo amigo

  • @macman194
    @macman194 5 років тому +1

    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.

  • @chinomaca2076
    @chinomaca2076 3 роки тому +1

    18:51

  • @charly-ic2dd
    @charly-ic2dd 4 роки тому +1

    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!!

  • @genarorichard9386
    @genarorichard9386 3 роки тому +1

    cual seria la diferencia entre crear un void virtual y crear una interfaz

  • @nychu4
    @nychu4 Рік тому

    10/10 😊

  • @RickyBotellas
    @RickyBotellas 3 роки тому

    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

  • @El_Facheras
    @El_Facheras Рік тому

    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.

  • @OAPR2694
    @OAPR2694 5 років тому

    Eres grande

  • @valentinroldan545
    @valentinroldan545 Рік тому

    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

  • @stevenmc5523
    @stevenmc5523 5 років тому +1

    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 ?

    • @TheDiegoPayne
      @TheDiegoPayne 5 років тому

      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.

    • @GerentedeSistemas
      @GerentedeSistemas 4 роки тому

      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.

  • @conchita-ud8jc
    @conchita-ud8jc 3 роки тому

    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. :(

  • @minipiman
    @minipiman 4 роки тому +5

    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?

    • @alancuevasmelendez1606
      @alancuevasmelendez1606 4 роки тому

      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.

    • @alancuevasmelendez1606
      @alancuevasmelendez1606 4 роки тому +1

      Para poder obligar al desarrollador a implementar algun metodo seria con las CLASES ABSTRACTAS

  • @geraldineclarosrios9689
    @geraldineclarosrios9689 4 роки тому +1

    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

    • @BreegBenjamin
      @BreegBenjamin 4 роки тому +3

      ¿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.

    • @GerentedeSistemas
      @GerentedeSistemas 4 роки тому

      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.

  • @giancarloandrebravoabanto7091
    @giancarloandrebravoabanto7091 5 років тому

    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

  • @lucs0091
    @lucs0091 3 роки тому +1

    9:00

  • @carlosRamirez-py9bg
    @carlosRamirez-py9bg 4 роки тому +1

    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

    • @Bola10010
      @Bola10010 3 роки тому

      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.

  • @kenpachoo
    @kenpachoo 5 років тому

    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.

  • @newdawn7506
    @newdawn7506 2 роки тому

    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)

    • @axds8122
      @axds8122 2 роки тому

      Que error te daba? a mi me salio todo bien jiji

  • @rubenmartinezbravo6803
    @rubenmartinezbravo6803 5 років тому

    pues bien a la verdad!!

  • @jesusrios8025
    @jesusrios8025 5 років тому

    Hola Muy interesante cres que puedas sacar los videos mas rapidos, que no tardes compartirnos tus conocimientos

  • @rossanatapias
    @rossanatapias 9 місяців тому

    👍

  • @ezequielmartinez194
    @ezequielmartinez194 Рік тому

    20:54 alto gallo XD

  • @Sir_Isaac_Newton_
    @Sir_Isaac_Newton_ 3 роки тому +1

    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'

  • @guindas2165
    @guindas2165 5 років тому +1

    Es cierto que lo de la pelicula no era una ballena si no una orca, pero no pasa nada, tampoco te llamaba Wally xDD

  • @estebanf1490
    @estebanf1490 3 роки тому +1

    yo pensaba que era interfaz grafica

  • @victorleon6821
    @victorleon6821 4 роки тому +5

    Se dice Interface!!!, interfaz es un ambiente gráfico al usuario

    • @3li4nM4rt1n3z
      @3li4nM4rt1n3z 4 роки тому +3

      Interface en inglés e interfaz en español.
      No existe "interface" en español.

  • @josetome6997
    @josetome6997 4 роки тому +1

    Quien fue el amargado que dio dislike?

  • @borrego9022
    @borrego9022 4 роки тому

    11:42
    Mmm... patas 😏

  • @oscarmarronblasquez8478
    @oscarmarronblasquez8478 2 роки тому

    chale yo pensé que interfaz era ya la pantalla lo visual pues jajaj xD

  • @linox20
    @linox20 4 роки тому

    la ballena se llamaba willy

  • @user-dm5qi4nb6l
    @user-dm5qi4nb6l 4 роки тому

    yo considero que algunos humanos si tienen patas :,D

  • @federicaalem7106
    @federicaalem7106 5 років тому

    Hola .. das Windows form?

  • @albertodelamo3286
    @albertodelamo3286 5 років тому +1

    Puedes enseñar shell script en Linux?

  • @centineladeisrael
    @centineladeisrael Місяць тому

    Excelente profesor , pero no sé entiende nada

  • @alphaalfre
    @alphaalfre 2 роки тому

    👀

  • @martinmartinez5161
    @martinmartinez5161 2 роки тому

    Ballene JAJAJA
    Sin saber estanas usando lenguaje Inclusivo

  • @andresrom3576
    @andresrom3576 9 місяців тому

    Que innecesario.
    Cantidad de patas de Ballena es 0.
    Listo, las interfaces son inútiles.
    Es broma Weon!!

  • @Thefinalsong638
    @Thefinalsong638 Рік тому

    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...