10. Los Pilares de la POO
¿A dónde vamos con todo esto?
Ya conoces la Abstracción y el Encapsulamiento (get / set). Ahora nos enfocaremos en Herencia y Polimorfismo. Estos pilares te permitirán escribir enormes simulaciones, videojuegos o aplicaciones reduciendo el código repetido casi a cero.
Herencia (`:`)
La herencia significa crear una "clase hija" que obtiene todas las propiedades y métodos de una "clase padre", logrando así reutilizar el comportamiento base sin tener que escribirlo de nuevo.
Polimorfismo (`virtual` y `override`)
Ocurre cuando heredaste de la clase base un método, pero te das cuenta que es deficiente, así que la hija decide sobrescribirlo (rediseñarlo por su cuenta), logrando tener "múltiples formas" de ejecución bajo el mismo nombre.
Interfaces (`I`)
Las Interfaces en C# son como contratos. Las llamas empezando con I obligan a una clase a decir: "Yo prometo firmar el contrato e implementar estos métodos".
Es clave en arquitecturas de dependencias, y aunque no permite variables, dictará el comportamiento exacto que deba ser seguido.
¡Felicidades, has dominado los fundamentos de C#! 🎉
Desde escribir tu primer programa secuencial, evaluar lógicas con ciclos, agrupar datos, hasta aplicar buenas prácticas de ingeniería de software mediante Clases e Interfaces. Estás completamente capacitado para saltar a un Framework moderno (`ASP.NET Core`, `Unity`, `React con C# backend`) o afrontar nuestra sección del "Modo Desafío".
👨💻 Ejercicio Práctico
Crea una clase base Personaje con un método virtual Atacar(). Luego, crea una clase hija Guerrero : Personaje que le haga override al ataque para hacerlo más fuerte.
👁️ Ver solución propuesta
👨💻 Ejercicio Práctico 2
Crea clase base `Instrumento` con método virtual Tocar(). Herédala en Guitarra y hazle un override diciendo "¡Riff de Rock!".
👁️ Ver solución propuesta
👨💻 Ejercicio Práctico 3
Desarrolla una interfaz IVolador con el método Volar(). Haz que una clase Pato implemente la interfaz.
👁️ Ver solución propuesta
👨💻 Ejercicio Práctico 4
Una clase Vehiculo con propiedad `Llantas`. La clase Moto hereda de ella. En Main crea tu moto y asígnale `m.Llantas = 2`.
👁️ Ver solución propuesta
Ponte a prueba
Comprueba tus conocimientos sobre este tema realizando nuestro pequeño test.