Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Avanzada
Realizado por:
Objetivo:
Desarrollar programas utilizando la herencia y polimorfismo..
5 de octubre de 2023
1
UPIITA Programación Avanzada 2MV4
1. Introducción
Polimorfismo (en POO) es la capacidad que tienen ciertos lenguajes para hacer que, al enviar el
mismo mensaje (o, en otras palabras, invocar al mismo método) desde distintos objetos, cada uno de
esos objetos pueda responder a ese mensaje (o a esa invocación) de forma distinta. Las operaciones
polimórficas son aquellas que hacen funciones similares con objetos diferentes.
1 1
UPIITA Programación Avanzada 2MV4
2. Desarrollo
Este primer programa en Python, tiene como objetivo crear un aplicativo donde defina las siguientes
clases:
1. Computadora. Clase abstracta. Deberá declarar los métodos Getters y Setters abstractos para los
atributos: Memoria, Procesador, Almacenamiento, GPU.
En su programa principal pruebe sus clases diseñadas creando al menos 3 instancias de cada una.
El código:
Figura 3: Comps
Se crea la clase llamada Computadora con un constructor que contiene los 4 parametros que llevará
la clase madre. Se asigna valor a los atributos.
2 2
UPIITA Programación Avanzada 2MV4
Figura 4: Programa 1
Se utiliza los métodos Getters y Setters.Para cada atributo (memoria y procesador). El método getters
se utiliza para un atributo que se comportara en solo lectura y setters permite definir un método que se
utiliza para asignar un valor de una propiedad de solo lectura.
Figura 5: Programa 1
Para cada atributo (almacenamiento y gpu). El método getter se utiliza para un atributo que se
comportara en solo lectura y setter permite definir un método que se utiliza para asignar un valor de una
propiedad de solo lectura. El def str devolverá una cadena de los atributos.
3 3
UPIITA Programación Avanzada 2MV4
Figura 6: Programa 1
Se crea una subclase llamada ComputadoraPortatil que hereda los atributos de la clase principal
(Computadora). Se inicializa un nuevo atributo llamado color con el constructor super() que igualmente
tendrá su método getter y setter.
Figura 7: Programa 1
Se crea una subclase llamada CompEscritorio que tiene los atributos de Computadora, la clase
principal. Se inicializa un nuevo atributo llamado mouse con el constructor super() que igualmente tendrá
su método getter y setter.
4 4
UPIITA Programación Avanzada 2MV4
Figura 8: Programa 1
Se crea una subclase Celular que tiene los atributos de la clase principal (Computadora). Se inicializa
un nuevo atributo llamado camara con el constructor super() que igualmente tendrá su método getter y
setter.
Figura 9: Programa 1
Se crea la subclase llamada Tablet que contiene los atributos de la clase principal (Computadora).Se
inicializa un nuevo atributo llamado bateria con el constructor super() que igualmente tendrá su método
getter y setter.
5 5
UPIITA Programación Avanzada 2MV4
Se crean las instancias de las clases. Cada instancia de una clase tiene mismos atributos y métodos
con un atributo nuevo, pero comparte la misma estructura y comportamiento general definidos por la
clase.
Dado el siguiente diagrama de clases, escriba un programa que contenga todas las clases y herencia
indicadas. En su programa principal, muestre un menú con el cual permita al usuario adquirir tantas
mascotas como desee, y le permita visualizar en pantalla todas sus mascotas.
6 6
UPIITA Programación Avanzada 2MV4
El código:
Se crea la clase Mascota y se define un constructor que contiene los atributos nombre, edad, dueño y
tipo. El valor de cada parámetro se asigna a cada atributo.
7 7
UPIITA Programación Avanzada 2MV4
Se declaran métodos con cada uno de los atributos de la clase Mascota, que devuelven el valor que
se le asigne a cada uno. Def str devolverá una cadena de texto con los atributos y su valor.
Se crea la subclase Domestica que hereda atributos de la clase Mascota y se le agrega un atributo
nuevo llamado factor ternura que con un método super() inicializa los atributos. Y def str devuelve la
cadena de Factor ternura.
Las subclases Perro y Gato heredan de la clase Domestica inicializando sus atributos, dándole valor
y define el método hablar en cada uno que retorna una cadena de texto.
8 8
UPIITA Programación Avanzada 2MV4
Se crea la subclase Exoticos que hereda atributos de la clase Mascota. Inicializa los atributos con el
método super() y se le agrega un nuevo atributo llamado factorpeligro. 3 subclases de Exoticos llamada
Tigre Vivora y Dinosaurio. Cada mascota define el método habla que retorna una cadena de texto de
acuerdo al sonido que crean.
En la subclase Dinosario se crean 3 subclases más; Brontosaurio,Raptor y TRex que con el método
super() inicializan el valor de sus atributos que herendan de Dinosaurio. El método hablar retorna una
cadena de texto que cada una de estas mascotas, donde muestra el sonido que produce.
9 9
UPIITA Programación Avanzada 2MV4
Las instancias de los animales domésticos perro y gato, donde se imprimirán sus datos en pantalla y
hablarán.
Las instancias de los animales exóticos con los datos de cada mascota que se imprimirá en pantalla.
10 10
UPIITA Programación Avanzada 2MV4
Datos impresos en pantalla con los sonidos que hablaran las mascotas.
3. Resultados
3.1. Programa 1:
11 11
UPIITA Programación Avanzada 2MV4
3.2. Programa 2:
12 12
UPIITA Programación Avanzada 2MV4
4. Conclusiones
En conclusión, podemos ver que en Python también se puede utilizar la herencia y polimorfismo en
nuestras clases. Podemos notar que esto nos permite escribir un código más limpio y legible. Resulta
hacer trabajos más completos y ordenados como los vistos en esta práctica. La herencia permitió a una
clase heredar atributos y métodos de otra clase, lo que promueve la reutilización de código. Una subclase
puede aprovechar la funcionalidad de su superclase, evitando duplicación de código. En el polimorfismo,
se pudo definir varios métodos con el mismo nombre en diferentes clases, pero con implementaciones
especı́ficas para cada clase.
5. Referencias
PythonDiario. (2016, octubre 13). Herencia y Polimorfismo en Python (Ejemplo Simple). Mi Diario
Python. https://pythondiario.com/2016/10/herencia-y-polimorfismo-en-python.html
13 13