Está en la página 1de 11

Intro a POO

Clases, Herencia y
Polimorfismo
El día de hoy...

1 Clases y Objetos

2 Herencia

3 Polimorfismo
¿Qué es la Programación Orientada a
Objetos?
Es un paradigma que nos permite crear código reutilizable
de manera efectiva.
Para este curso es indispensable, ya que Django nos
proporciona clases genéricas que implementaremos para
desarrollar más rápido.
Clases y
Objetos

Una clase es una categoría que definimos dentro de nuestro código, que
tiene sus propias funciones y propiedades.

Un objeto es una instancia de una clase, es decir un sujeto de ese conjunto.


Podemos poner objetos del mundo real a esta lógica:

● Juan es un hombre.
● Este Honda Civic es un automóvil.
● Kevin Dubon es mi amigo.
Clases y
Objetos

Veamos unos ejemplos de clases.

Persona. Automóvil. Licuadora.

Propiedades: Propiedades: Propiedades:


● Nombre. ● Marca. ● Marca.
● Edad. ● Kilometraje. ● Color.
● Sexo. ● Color. ● Altura.
Funciones: Funciones: Funciones:
● Caminar ● Andar ● Licuar
● Respirar ● Cambiar velocidad ● Cambiar velocidad
Dato de Vital Importancia.

Existen lenguajes de programación que no


soportan el paradigma de Programación
Orientada a Objetos, y también la
implementación del paradigma varía de
lenguaje a lenguaje.
El conocimiento adquirido en este taller nos
ayudará en varios lenguajes, pero está creado
específicamente para Python.
Herencia

Una clase puede ser una subclase o clase hijo de una clase padre. Esto le
permite obtener ciertas características de ese padre, y sobreescribir sus
propias características.
Por ejemplo, la clase Naranja y la clase Manzana ambas serian hijas de la
clase Fruta, teniendo características en común y características diferentes.
Herencia

Veamos un ejemplo.
Vehículo.

Propiedades:
● Velocidad.
● Cantidad de
Ruedas.
● Marca.

Coche.
Moto.
Propiedades:
Propiedades: ● Tipo de asiento.
● Tipo de manubrio. ● Antigüedad del
filtro de AC.
Polimorfismo

El polimorfismo en Python nos permite sobreescribir métodos de una clase


padre en una clase hija.
Por ejemplo, podríamos tener una clase FiguraGeometrica, de la que heredan
una clase Círculo, y Triángulo.
La clase padre, tiene un método obtenerArea, la cual posee diferentes
implementaciones entre sus hijos.
Herencia Múltiple

La herencia múltiple nos permite que una clase hijo tenga


múltiples padres. Esto nos permite combinar ambas
propiedades y métodos de dos clases. En Python es una
práctica común crear clases comodín con el objetivo de
agregar uno o dos métodos a varias clases, esto se conoce
como “mixin”.
Esto no es permitido en varios lenguajes porque lleva al
problema del Mortal Diamante de la Muerte.

Solo para Python


MORTAL DIAMANTE DE LA MUERTE

El “Mortal Diamante de la Muerte” es un error que


se genera cuando una clase tiene dos padres, que
heredan del mismo abuelo, sobreescribiendo el
mismo método en ambas clases.
Por ejemplo, si tenemos una clase que hereda tanto
de la clase “círculo” como de la clase “triángulo”,
¿Cuál de los dos métodos “obtenerArea” debería
implementar?
Es por esto que lenguajes como C# no permiten la
herencia múltiple.

También podría gustarte