Herencia Python 3 POO

Hola a todos, hoy os voy a enseñar como usar la herencia en Python 3.

La herencia consiste en la creación de clases a partir de otras ya existentes. Tenemos lo que llamamos una clase padre (superclase) y clases hijas (clases derivadas), que heredan los métodos y atributos de su clase padre.

Vamos a ver un ejemplo, tenemos una clase empleado que sera una superclase y las clases hijas.

La idea es que los empleados sean del tipo que sean tienen atributos o métodos comunes y para optimizar las clases creamos una clase padre que contenga todo lo común a todas las hijas y en las hijas, ademas de los atributos del padre pueden tener sus propios atributos o métodos.

Una buena forma de ver la herencia, es con la frase “es un”. Por ejemplo, una Moto“es un” Vehiculo.

 

Antes de empezar con la clase hija, voy a recordar la clase padre Vehiculo:

Ahora vamos a crear una clase hija Moto, una moto tiene todo lo que tiene un vehículo mas si tiene o no sidecar (por ejemplo).

Como veis, solo hay que poner entre paréntesis la clase padre al crear la clase hija. También es importante ver que al crear una moto, debo darle la matricula, marca y modelo porque realmente estoy creando un vehiculo.

Aquí usamos una nueva palabra, super, esto hace referencia a la clase padre que seria Vehiculo.

Vamos a probar la clase.

Este es el resultado:

Recordar que todos los métodos del padre se heredan a las hijas, en este caso, todos los get y set y el método arrancar.

Si lo llamo, ¿Que me mostrara? Lo mismo que el padre, entonces ¿puedo personalizarlo en Moto? La respuesta es si. Esto en POO se llama sobrescribir un método.

Vemos como se hace en la clase hija:

 

Si lo ejecutamos lo siguiente:

Este es el resultado:

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Warning: Trying to access array offset on value of type null in /home2/discodur/public_html/discoduroderoer/wp-content/themes/disto/single.php on line 539