Python Clase 4

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

POO

Optativa 1 TUP: Desarrollo en Python


POO 2da parte

Dr. Cristian Martínez | José I. Tuero

Departamento de Informática
Universidad Nacional de Salta

Setiembre, 2022

1 / 18
POO

Agenda

1 POO
Introducción
Herencia
Polimorfismo y Sobrecarga

2 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

En la primera clase de POO vimos los siguientes conceptos:


Clase
Objeto
Instanciación
Atributo
Método

3 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

También en la parte práctica comenzamos a pensar en POO y a


ver diferencias con la Programación Estructurada.

Algo muy importante a remarcar: los objetos deben


cooperar para resolver un problema computacional.
Tenemos que lograr que los objetos cooperen. No
sirve que se ”manden” escalares. Los objetos deben
verse como cajas negras .

4 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

También vimos:
Los atributos son públicos por defecto.
Los métodos también.
Los métodos (al igual que pasaba con las funciones) soportan
valores por defecto.
Algo que omitimos: para que los atributos y métodos sean
privados debe estar precedidos de 2 guiones bajos. Ejemplo
self.__atributo, def __metodo().

5 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Como recordatorio definamos encapsulamiento: Es el ocultamiento


del estado de un objeto.
Para lograr el encapsulamiento de los objetos, los datos de los
mismos deben ser únicamente modificados mediante operaciones.

6 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Pero también y por ser primera clase, quedaron temas a ver


después:
Herencia
Polimorfismo
Sobrecarga
Composición

7 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Una forma natural de organizar nuestro información es de manera


jerárquica.

8 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

La correspondencia entre niveles (como los de la figura) a menudo


se refieren a una relación de tipo ”es un”. Por ejemplo, una casa
”es una” construcción, y un rancho ”es una” casa.

En POO, el mecanismo para una organización jerárquica y modular


es una técnica conocida como herencia [Goodrich et al., 2013].
Esto permite que una nueva clase sea definida a partir de una clase
existente como punto de partida.

9 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

En lo que refiere a la Programación Orientada a Objetos, la clase


existente se conoce como clase base, clase padre o superclase,
mientras que la nueva clase definida se conoce como subclase o
clase hija.

De la gráfica anterior, Ranch(rancho) es una subclase de House


(casa). House es clase padre de Ranch y Ranch es clase hija de
House.

10 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Para qué crear una subclase?


Para especializar un comportamiento actual (proveniente de la
superclase) proporcionando una nueva implementación.
Para extender (a la superclase) proporcionando nuevos
métodos.

11 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Ejemplo

12 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Ejemplo

Veamos código!

13 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

En el ámbito de POO, el polimorfismo hace referencia la habilidad


que tienen los objetos de diferentes clases a responder a métodos
con el mismo nombre pero con implementaciones
diferentes[Fernández Montoro, 2012].

14 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Ejemplo

Veamos código!

15 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

En POO, la sobrecarga se refiere a la posibilidad de tener dos o


más métodos (en una misma clase) con el mismo nombre pero
funcionalidad diferente.
El compilador usará una u otra dependiendo de los parámetros
usados. No obstante esta es una característica de los lenguajes
estáticos.

16 / 18
Introducción
POO Herencia
Polimorfismo y Sobrecarga

Qué ocurre en Python? Se puede definir 2 métodos con mismo


nombre y firmas diferentes. Sin embargo, el compilador buscará
ejecutar el último método.
Una solución adhoc es la siguiente: Usar métodos con parámetros
por defecto y en el cuerpo, preguntar por los parámetros actuales.
Según eso, hace una cosa u otra. ;)

17 / 18
POO

The End

18 / 18

También podría gustarte