La herencia y el polimorfismo son dos conceptos fundamentales en la programación orientada a objetos (POO) y se utilizan ampliamente en muchos lenguajes de programación, incluido Python. Exploremos estos conceptos en detalle.
7.4.1 Herencia
La herencia es una característica de la programación orientada a objetos que permite que una clase herede atributos y métodos de otra clase. La clase de la que se heredan los atributos y métodos se denomina clase base o clase principal, y la clase que hereda estos atributos y métodos se denomina clase secundaria o clase derivada.
En Python, la herencia se logra definiendo una nueva clase, seguida de los nombres de las clases principales entre paréntesis.
clase PadreClase: aprobar clase ChildClass (ParentClass): aprobar
Aquí, ChildClass
es una subclase de ParentClass
y hereda todos sus atributos y métodos.
Python también admite herencia múltiple, donde una clase puede heredar de varias clases principales. Esto se logra enumerando todas las clases principales entre paréntesis, separadas por comas.
clase PadreClase1: aprobar clase PadreClase2: aprobar clase ChildClass (ParentClass1, ParentClass2): aprobar
Aquí, ChildClass
es una subclase de ParentClass1
y ParentClass2
y hereda todos sus atributos y métodos.
7.4.2 Polimorfismo
El polimorfismo es otra característica fundamental de la programación orientada a objetos. Permite que un objeto adopte muchas formas. Más específicamente, el polimorfismo permite que una clase secundaria comparta el mismo nombre de método que su clase principal y proporcione una implementación diferente de ese método.
Por ejemplo, considere dos clases, ParentClass
y ChildClass
. Ambas clases tienen un método llamado example_method
. Sin embargo, la implementación de este método en cada clase es diferente.
clase PadreClase: def método_ejemplo(yo): print("Método ParentClass") clase ChildClass (ParentClass): def método_ejemplo(yo): print("Método ChildClass")
Aquí, ChildClass
es una subclase de ParentClass
y ambas clases tienen un método llamado example_method
. Sin embargo, la implementación de este método en cada clase es diferente. Este es un ejemplo de polimorfismo.
Python permite el polimorfismo de dos maneras: sobrecarga de métodos y sustitución de métodos. La sobrecarga de métodos permite que una clase tenga múltiples métodos con el mismo nombre pero con diferentes firmas de método. La anulación de método permite que una clase secundaria proporcione una implementación diferente de un método que ya proporciona su clase principal.
En resumen, la herencia y el polimorfismo son características fundamentales de la programación orientada a objetos que permiten la reutilización del código y la flexibilidad a la hora de implementar diferentes comportamientos de los objetos. Se utilizan ampliamente en muchos lenguajes de programación, incluido Python, y son clave para crear sistemas eficientes y reutilizables.