0Pricing
Python For Kids · Lección

Polimorfismo

Explore conceptos avanzados de la programación orientada a objetos.

Polimorfismo es una lección gratuita de Python For Kids en CoddyKit. Esta es la lección 5 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python For Kids, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python For Kids incluye 5 lecciones en total.

Polimorfismo

¡Le damos la bienvenida de nuevo a la lección de Programación Orientada a Objetos (OOP)! Hoy exploraremos el polimorfismo en Python, un concepto muy potente que permite que los objetos adopten varias formas.

Polimorfismo  — ilustración 1

¿Qué es el polimorfismo?

El polimorfismo es un concepto fundamental de la OOP que permite tratar objetos de distintas clases como objetos de una superclase común. Permite que un mismo método se comporte de forma diferente según el objeto que lo invoque.

  • Definición: «Muchas formas»: capacidad de distintos objetos para responder de manera única a la misma llamada de método.
  • Propósito: Mejora la flexibilidad y la integración del código al permitir intercambiar objetos.

¡Veamos cómo funciona el polimorfismo en Python!

Implementación del polimorfismo

El polimorfismo puede lograrse en Python mediante la sobrescritura de métodos y el uso de funciones integradas que funcionan con distintos tipos de objetos.

  • Sobrescritura de métodos: Redefinir en una clase hija un método que ya se había definido en la clase padre.
  • Funciones integradas: Funciones como len() que funcionan con varios tipos de datos.

Veamos la sobrescritura de métodos en detalle.

Sobrescritura de métodos

La sobrescritura de métodos permite que una clase hija proporcione una implementación específica de un método que ya está definido en su clase padre. Este es un aspecto clave del polimorfismo.

Ejemplo:

# Defines the Animal parent class with a speak method
class Animal:
    def speak(self):
        print("The animal makes a sound.")  # Generic speak method

Creación de clases hijas con métodos sobrescritos

Vamos a crear clases hijas que hereden de Animal y sobrescriban el método speak para proporcionar comportamientos específicos.

Ejemplo:

# Defines the Dog child class inheriting from Animal
class Dog(Animal):
    def speak(self):
        print("The dog barks.")  # Overridden speak method

# Defines the Cat child class inheriting from Animal
class Cat(Animal):
    def speak(self):
        print("The cat meows.")  # Overridden speak method

Uso del polimorfismo con métodos sobrescritos

Ahora vamos a crear objetos de las clases hijas y comprobar cómo muestran comportamientos diferentes utilizando el mismo nombre de método.

Ejemplo:

# Creates objects of Dog and Cat classes
dog = Dog()
cat = Cat()

# Calls the speak method on both objects
dog.speak()  # Output: The dog barks.
cat.speak()  # Output: The cat meows.

Polimorfismo con funciones integradas

El polimorfismo no se limita a las clases definidas por el usuario. Las funciones integradas de Python, como len(), funcionan con distintos tipos de datos y demuestran un comportamiento polimórfico.

Ejemplo:

# Uses len() with a list
my_list = [1, 2, 3, 4]
print(len(my_list))  # Output: 4

# Uses len() with a string
my_string = "Hello"
print(len(my_string))  # Output: 5

# Uses len() with a dictionary
my_dict = {"a": 1, "b": 2}
print(len(my_dict))  # Output: 2

Programa de ejemplo: cálculo del área de figuras

Vamos a crear un programa que calcule el área de distintas figuras mediante el polimorfismo. Definiremos una clase padre Shape y las clases hijas Circle y Rectangle, que sobrescribirán el método area.

Código:

# Defines the Shape parent class with an area method
class Shape:
    def area(self):
        pass  # Placeholder method

# Defines the Circle child class inheriting from Shape
class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius  # Sets the radius of the circle

    def area(self):
        return 3.14 * self.radius ** 2  # Calculates area of the circle

# Defines the Rectangle child class inheriting from Shape
class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width    # Sets the width of the rectangle
        self.height = height  # Sets the height of the rectangle

    def area(self):
        return self.width * self.height  # Calculates area of the rectangle

# Creates objects of Circle and Rectangle classes
circle = Circle(5)
rectangle = Rectangle(4, 6)

# Calculates and prints areas using polymorphism
print("Circle Area:", circle.area())        # Output: Circle Area: 78.5
print("Rectangle Area:", rectangle.area())  # Output: Rectangle Area: 24
# Defines the Vehicle parent class with a move method
class Vehicle:
    def move(self):
        print("The vehicle moves.")

# Defines the Bicycle child class inheriting from Vehicle
class Bicycle(Vehicle):
    def move(self):
        print("The bicycle pedals forward.")

# Defines the Airplane child class inheriting from Vehicle
class Airplane(Vehicle):
    def move(self):
        print("The airplane flies in the sky.")

# Creates objects of Bicycle and Airplane classes
bike = Bicycle()
plane = Airplane()

# Calls the move method on both objects
bike.move()
plane.move()

¡Excelente trabajo!

Ha aprendido sobre el polimorfismo en Python y sobre cómo permite que objetos de distintas clases respondan de manera única a las mismas llamadas de método. El polimorfismo mejora la flexibilidad y la escalabilidad de su código, lo que facilita su administración y ampliación. ¡Siga practicando mediante la creación de más clases y métodos que utilicen un comportamiento polimórfico para reforzar sus conocimientos!

Polimorfismo  — ilustración 10

Preguntas frecuentes

¿La lección «Polimorfismo » es gratis?

Sí — el texto completo de «Polimorfismo » es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python For Kids, actualiza a CoddyKit PRO. El curso de Python For Kids incluye 5 lecciones en total.

¿Qué aprenderé en «Polimorfismo »?

Explore conceptos avanzados de la programación orientada a objetos. Practicas Python For Kids con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python For Kids?

No se requiere experiencia previa. Python For Kids en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 5 de 5.

¿Cuánto tiempo toma la lección «Polimorfismo »?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python For Kids?

Sí. Cada lección de Python For Kids incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Introducción a la programación orientada a objetos
  2. Creación de clases y objetos
  3. Herencia
  4. Encapsulación
  5. Polimorfismo
← Volver a Python For Kids