🚗 PROGRAMACIÓN ORIENTADA A OBJETOS: entender las piezas y cómo encajan
PARA ENTENDER EL ESQUEMA
Sobre esta infografía
(), utilizamos una operación sin tener que gestionar sus detalles internos.
Una buena abstracción expone lo necesario para trabajar con el objeto y reduce lo que necesitamos conocer de su implementación.
🔹 5. HERENCIA: «es un»
Un Coche es un Vehiculo.
La clase derivada puede aprovechar y especializar comportamiento de la clase base.
La condición es que pueda utilizarse donde se espera el tipo base, respetando su contrato.
🔹 6. POLIMORFISMO: una operación, distintas implementaciones
Vehiculo v = new Coche("SEAT");
Si Describir() es virtual y Coche lo sobrescribe con override, al llamar a v.Describir() se ejecuta la versión de Coche.
La variable es de tipo Vehiculo; el objeto real es un Coche.
🔹 7. INTERFACES: definir capacidades
IRecargable expresa un contrato de comportamiento: Recargar().
Un coche eléctrico puede ser un Vehiculo e implementar IRecargable.
En C#, una clase puede heredar de una sola clase e implementar varias interfaces.
🔹 8. COMPOSICIÓN: «tiene un»
Una Furgoneta tiene un Motor.
Puede delegar en ese componente la operación Arrancar(). Así construimos comportamiento mediante objetos que colaboran.
💡 La POO exige decidir dónde deben vivir los datos, las reglas y las responsabilidades.
Antes de añadir una clase, pregúntate:
¿Qué responsabilidad tiene?
¿Qué estado debe proteger?
¿Con qué objetos necesita colaborar?
Responsabilidades claras. Estado protegido. Objetos que colaboran.
✍️ Oscar de la Cuesta
🌐 palentino.es
#Programación #POO #CSharp #DesarrolloDeSoftware #ArquitecturaDeSoftware #palentino
infograph