wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

POOB: Herencia y Polimorfismo

Total questions: 20

Worksheet time: 7mins

Name
Class
Date
1.

¿Qué es la herencia en POO?

a)
La copia textual de código entre archivos
b)

Una técnica para reutilizar miembros de una clase padre

c)
La conversión automática de tipos
d)
Un patrón de diseño para bases de datos
2.
¿Cuál es la sintaxis correcta para declarar una clase derivada en Python?
a)
class Hija -> Padre:
b)
class Hija(Padre):
c)
class Hija : Padre
d)
class Hija extends Padre:
3.

La clase base object en Python:

a)
Es opcional y rara vez se usa
b)
Es la raíz de la jerarquía; todas las clases son subclases, directas o indirectas, de object
c)
Solo se aplica en Python 2
d)
Debe heredarse manualmente siempre
4.

¿Qué diferencia a la herencia simple de la múltiple?

a)
La simple hereda de una única superclase; la múltiple de varias superclases
b)
No existe herencia múltiple en Python
c)
La múltiple solo se permite con interfaces
d)
La simple impide redefinir métodos
5.

En una relación de herencia, cuando se desea accesar a un método o un atributo y no se encuentra en la clase derivada, ¿Dónde se busca después?

a)

En la clase base

b)
En variables globales
c)
No se busca en ningún otro lugar
d)
En el sistema operativo
6.
¿Qué es la sobreescritura (redefinición) de métodos?
a)
Crear varios métodos con el mismo nombre y firmas diferentes en la misma clase
b)
Que una subclase redefina el comportamiento de un método heredado
c)
Invocar un método del sistema operativo
d)
Eliminar métodos de la superclase
7.

¿Qué ventaja tiene el uso de super() en constructores/métodos?

a)
Evita tener que nombrar explícitamente a la superclase y mejora el mantenimiento
b)
Hace el programa más lento pero más seguro
c)
Impide redefinir métodos
d)
Solo funciona en herencia múltiple
8.

Acerca de destructores (__del__):

a)
Se invocan manualmente en cada instancia
b)
Los invoca el recolector de basura cuando el objeto se elimina
c)
Siempre devuelven un entero
d)
No existen en Python
9.

¿Qué define mejor el polimorfismo?

a)
Que todas las clases tengan el mismo número de métodos
b)
Objetos de distintas clases responden al mismo mensaje con comportamientos propios
c)
Que una función retorne varios valores
d)
Que todas las subclases sean abstractas
10.

Duck typing en Python:

a)
Requiere heredar siempre de la misma clase base
b)
Importa que el objeto tenga los métodos necesarios más que su tipo
c)
Solo aplica a números
d)
Es exclusivo de Java
11.

Las clases abstractas en Python:

a)
Se crean con el módulo abc usando ABC y @abstractmethod
b)
No existen en Python
c)
Se activan con la palabra clave abstract class
d)
No pueden tener métodos concretos
12.

Una característica de las clases abstractas es que:

a)
Pueden instanciarse directamente
b)
No pueden instanciarse y obligan a implementar sus métodos abstractos en las subclases
c)
Solo existen si hay herencia múltiple
d)
Se usan para acortar nombres de clases
13.

¿Qué concepto describe que las subclases heredan y, a su vez, pueden ser clases base de otras subclases?

a)
Encapsulamiento
b)
Propagación de herencia
c)
Acoplamiento dinámico
d)
Serialización
14.

Para el acceso controlado de atributos en Python se suelen usar…

a)

Métodos getters y setters

b)
Variables globales
c)
Macros de preprocesador
d)

Solo atributos públicos

15.

De lo siguiente, ¿Qué NO es reutilización de código?

a)
Usar módulos/paquetes y herencia para compartir comportamiento
b)
Importar clases y funciones desde otros archivos
c)
Copiar y pegar código sin interfaz común
d)
Definir clases base genéricas
16.
Para que Python reconozca una carpeta como paquete, debe contener…
a)
Un archivo README.md
b)
Un archivo __init__.py
c)
Al menos tres módulos .py
d)
Un archivo package.json
17.

Dentro de un método sobrescrito en una subclase, ¿Cuál es la forma más recomendable de invocar la versión de la superclase?

a)

Base.metodo()

b)

Base.metodo(self)

c)

super().metodo()

d)

self.metodo(super)

18.

Respecto al orden de resolución de métodos en herencia múltiple (MRO), ¿Cuál afirmación es correcta?

a)

Se decide alfabéticamente por el nombre de las clases.

b)

Es arbitrario y puede cambiar en cada ejecución del programa.

c)

Se calcula respetando precedencia de izquierda a derecha y la jerarquía.

d)

No existe MRO en Python.

19.

¿Cómo se le llama a la clase de la cual heredan otras clases?

a)

Clase derivada

b)

Clase abstracta

c)

Clase base

d)

Clase secundaria

20.

¿Cuál es la sintaxis correcta para crear una clase C que herede de A y B en Python?

a)

class C: A, B

b)

class C(A, B):

c)

class C <- A, B:

d)

class C extends A, B: