6.3. Programación orientada a objetos en Python: herencia y polimorfismo
La programación orientada a objetos (POO) es un paradigma de programación que proporciona una forma de estructurar programas de modo que las propiedades y comportamientos se agrupen en objetos individuales. Python es un lenguaje de programación orientado a objetos y este será el foco de nuestra discusión en este capítulo, centrándonos en la herencia y el polimorfismo.
Herencia en Python
La herencia es un concepto fundamental de programación orientada a objetos que le permite crear una nueva clase que es una versión modificada de una clase existente. La clase original se denomina clase base o clase principal, y la nueva clase se denomina clase derivada o clase secundaria. La clase hija hereda todos los atributos y comportamientos de la clase padre, pero también puede agregar nuevos o modificar los existentes.
En Python, la herencia se declara pasando la clase principal como parámetro a la clase secundaria. Aquí tienes un ejemplo:
claseAnimal: def __init__(yo, nombre): self.nombre = nombre clase Perro(Animal): def ladrar(yo): devolver "¡Guau!"
En el ejemplo anterior, la clase Perro hereda de la clase Animal. Esto significa que un objeto Dog tiene un atributo de nombre y un método bark().
Polimorfismo en Python
El polimorfismo es otro concepto fundamental de programación orientada a objetos que se refiere a la capacidad de un objeto de adoptar muchas formas. En Python, el polimorfismo se implementa de dos maneras: sobrecarga de métodos y anulación de métodos.
La sobrecarga de métodos se refiere a la capacidad de una clase de tener múltiples métodos con el mismo nombre pero con diferentes parámetros. En Python, la sobrecarga de métodos se realiza utilizando argumentos predeterminados o argumentos variables.
Aquí hay un ejemplo de sobrecarga de métodos en Python:
clase Rectángulo: área def(yo, largo=1, ancho=1): longitud de retorno * ancho
En el ejemplo anterior, el método area() se puede llamar con cero, uno o dos argumentos.
La anulación de métodos se refiere a la capacidad de una clase secundaria de cambiar la implementación de un método que heredó de su clase principal. Esto se hace simplemente declarando un método en la clase secundaria con el mismo nombre que el método en la clase principal.
Aquí hay un ejemplo de anulación de métodos en Python:
claseAnimal: sonido def (yo): devolver "Sonido animal genérico" clase Perro(Animal): sonido def (yo): devolver "¡Guau!"
En el ejemplo anterior, la clase Perro reemplaza el método sound() de la clase Animal.
En resumen, la programación orientada a objetos en Python, con el uso de herencia y polimorfismo, le permite crear código que es flexible y reutilizable. La herencia le permite crear nuevas clases a partir de clases existentes y el polimorfismo permite que los objetos de diferentes clases sean tratados de la misma manera. Estos conceptos son fundamentales para crear software complejo y son una parte esencial de cualquier curso de Python.