Está en la página 1de 14

Instituto Politécnico Nacional

Unidad Profesional Interdisciplinaria en


Ingenierı́a y Tecnologı́as Avanzadas

Programación Avanzada

Práctica 3:Herencia y polimorfismo

Realizado por:

Boleta Nombre Apellidos


2022640662 Abigail Olvera Alvarado

Objetivo:
Desarrollar programas utilizando la herencia y polimorfismo..

5 de octubre de 2023

1
UPIITA Programación Avanzada 2MV4

1. Introducción

La Herencia y el Polimorfismo son unos de los conceptos más importantes y diferenciadores de la


Programación Orientada a Objetos.
• La herencia permite crear clases a partir de otras clases. Las nuevas clases creadas heredan las
propiedades y métodos de las clases bases.
• La clase que se crea a partir de una clase se llama subclase.
• La clase de donde se creó la nueva clase se llama superclase.

Figura 1: Sintaxis herencia

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.

Figura 2: Sintaxis polimorfismo

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.

2. ComputadoraPortatil. Hereda de Computadora. Deberá tener adicionalmente al menos 1 atributo y


1 método.

3. ComputadoraEscritorio. Hereda de Computadora. Deberá tener adicionalmente almenos 1 atributo


y 1 método.

4. TelefonoInteligente. Hereda de Computadora. Deberá tener adicionalmente al menos 1 atributo y 1


método.

5. Tablet. Hereda de Computadora. Deberá tener adicionalmente al menos 1 atributo y 1 método.

En su programa principal pruebe sus clases diseñadas creando al menos 3 instancias de cada una.

2.1. Computadoras: Programa 1.

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

Figura 10: Programa 1

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.

Figura 11: Programa 1

Información mostrada en pantalla de Computadora Portátil, Computadora de Escritorio, Celular, Tablet.

2.2. Mascotas Programa 2:

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

Figura 12: Mascotas

El código:

Figura 13: Programa 2

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.

Figura 14: Programa 2

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.

Figura 15: Programa 2

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.

Figura 16: Programa 2

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

Figura 17: Programa 2

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.

Figura 18: Programa 2

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

Figura 19: Programa 2

Las instancias de los animales domésticos perro y gato, donde se imprimirán sus datos en pantalla y
hablarán.

Figura 20: Programa 2

Las instancias de los animales exóticos con los datos de cada mascota que se imprimirá en pantalla.

Figura 21: Programa 2

10 10
UPIITA Programación Avanzada 2MV4

Datos impresos en pantalla con los sonidos que hablaran las mascotas.

3. Resultados

3.1. Programa 1:

Figura 22: Programa 1

Se muestran los datos de Computadora Portatil y de Computadora de Escritorio.

Figura 23: Programa 1

Datos mostrados de Celulares Inteligentes y de Tablets.

11 11
UPIITA Programación Avanzada 2MV4

3.2. Programa 2:

Figura 24: Programa 2

Se muestran los datos de las mascotas domésticas (gato y perro)

Figura 25: Programa 2

Se muestran los datos de las mascotas exóticas (tigre, vı́vora y dinosaurio)

12 12
UPIITA Programación Avanzada 2MV4

Figura 26: Programa 2

Se muestran los datos de los dinosarios (Brontosaurio, Raptor y TRex)

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

También podría gustarte