herencia Flashcards
¿Qué es la herencia en programación orientada a objetos?
Una relación entre clases donde una clase puede ser un caso particular de otra
¿Cómo se llama la clase más general en una relación de herencia?
Clase madre
¿Cómo se llama la clase más específica en una relación de herencia?
Clase hija
¿Qué uso le podemos dar a esta propiedad?
Podemos definir un comportamiento en la clase madre y, usar ese comportamiento de la madre sin necesidad de escribir código en cada clase hija.
¿Qué es programar por diferencia?
Incluir en la clase hija solo los comportamientos que la diferencian de la clase madre
¿Qué ocurre si una clase no tiene un método para un mensaje recibido?
Se busca el método en la clase madre y hacia arriba en la jerarquía
¿Qué pasa si no se encuentra el método en toda la jerarquía de herencia?
Se provoca un error
¿Cuáles las 3 ventajas claves de la herencia?
- Permite a las clases heredar propiedades y métodos de otras clases.
- Permite la reutilización de código
- Promueve una estructura jerárquica en las relaciones de clases.
¿Qué otro nombre recibe la clase base?
También conocida como clase Madre, Superclase o Ancestro es la clase de la que heredan otras clases.
¿Qué otro nombre recibe la clase derivada?
También conocida como clase Hija, Subclase o Descendiente, es la clase que hereda propiedades y métodos de la clase base.
¿Qué define la clase base?
Atributos y comportamientos comunes que comparten sus clases derivadas
¿Qué puede agregar una clase derivada además de heredar?
Sus propias propiedades y métodos únicos
¿Qué relación debe cumplirse para aplicar herencia?
Relación ‘es un’
¿Por qué se considera que la herencia es una relación rígida?
Porque las clases hijas deben adherir completamente al contrato de la clase madre
¿Qué sucede si una clase hija no cumple totalmente el contrato de la clase madre?
No se puede aplicar herencia
¿Cómo se llaman las clases que no permiten ser heredadas?
Clases selladas o finales
¿Qué desventaja tienen las clases finales?
Van en contra de la reutilización y extensión
¿Qué ventaja tienen las clases finales?
Permiten al compilador introducir mejoras de eficiencia
¿Qué es la herencia múltiple?
La capacidad de una clase de heredar de más de una superclase
¿Qué tipo de herencia puede generar ambigüedades?
La herencia múltiple
¿Qué problema puede surgir con la herencia múltiple?
El problema del diamante
¿Qué establece el principio de sustitución de Liskov?
Los objetos deben poder ser reemplazados por instancias de sus subtipos sin afectar la corrección del programa
¿Qué permite la comprobación de tipos estática en relación con la herencia?
Almacenar referencias a subclases en variables del tipo de la superclase