herencia Flashcards

1
Q

¿Qué es la herencia en programación orientada a objetos?

A

Una relación entre clases donde una clase puede ser un caso particular de otra

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Cómo se llama la clase más general en una relación de herencia?

A

Clase madre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cómo se llama la clase más específica en una relación de herencia?

A

Clase hija

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué uso le podemos dar a esta propiedad?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es programar por diferencia?

A

Incluir en la clase hija solo los comportamientos que la diferencian de la clase madre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué ocurre si una clase no tiene un método para un mensaje recibido?

A

Se busca el método en la clase madre y hacia arriba en la jerarquía

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué pasa si no se encuentra el método en toda la jerarquía de herencia?

A

Se provoca un error

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Cuáles las 3 ventajas claves de la herencia?

A
  1. Permite a las clases heredar propiedades y métodos de otras clases.
  2. Permite la reutilización de código
  3. Promueve una estructura jerárquica en las relaciones de clases.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué otro nombre recibe la clase base?

A

También conocida como clase Madre, Superclase o Ancestro es la clase de la que heredan otras clases.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué otro nombre recibe la clase derivada?

A

También conocida como clase Hija, Subclase o Descendiente, es la clase que hereda propiedades y métodos de la clase base.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué define la clase base?

A

Atributos y comportamientos comunes que comparten sus clases derivadas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué puede agregar una clase derivada además de heredar?

A

Sus propias propiedades y métodos únicos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué relación debe cumplirse para aplicar herencia?

A

Relación ‘es un’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Por qué se considera que la herencia es una relación rígida?

A

Porque las clases hijas deben adherir completamente al contrato de la clase madre

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué sucede si una clase hija no cumple totalmente el contrato de la clase madre?

A

No se puede aplicar herencia

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cómo se llaman las clases que no permiten ser heredadas?

A

Clases selladas o finales

17
Q

¿Qué desventaja tienen las clases finales?

A

Van en contra de la reutilización y extensión

18
Q

¿Qué ventaja tienen las clases finales?

A

Permiten al compilador introducir mejoras de eficiencia

19
Q

¿Qué es la herencia múltiple?

A

La capacidad de una clase de heredar de más de una superclase

20
Q

¿Qué tipo de herencia puede generar ambigüedades?

A

La herencia múltiple

21
Q

¿Qué problema puede surgir con la herencia múltiple?

A

El problema del diamante

22
Q

¿Qué establece el principio de sustitución de Liskov?

A

Los objetos deben poder ser reemplazados por instancias de sus subtipos sin afectar la corrección del programa

23
Q

¿Qué permite la comprobación de tipos estática en relación con la herencia?

A

Almacenar referencias a subclases en variables del tipo de la superclase