0Pricing
Python For Kids · Aula

Polimorfismo

Explore conceitos avançados de POO.

Polimorfismo é uma aula grátis de Python For Kids no CoddyKit. Esta é a aula 5 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python For Kids, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python For Kids inclui 5 aulas no total.

Polimorfismo

Boas-vindas novamente à lição de Programação Orientada a Objetos (OOP)! Hoje, exploraremos o polimorfismo em Python, um conceito poderoso que permite que os objetos assumam várias formas.

Polimorfismo  — ilustração 1

O que é polimorfismo?

O polimorfismo é um conceito fundamental da OOP que permite tratar objetos de classes diferentes como objetos de uma superclasse comum. Ele permite que o mesmo método se comporte de maneiras diferentes com base no objeto que o invoca.

  • Definição: "Muitas formas" — a capacidade de objetos diferentes responderem de maneira única à mesma chamada de método.
  • Objetivo: Aumentar a flexibilidade e a integração do código, permitindo o uso intercambiável de objetos.

Vamos ver como o polimorfismo funciona em Python!

Implementando o polimorfismo

O polimorfismo pode ser obtido em Python por meio da sobrescrita de métodos e do uso de funções integradas que funcionam com diferentes tipos de objetos.

  • Sobrescrita de métodos: Redefinir, em uma classe filha, um método que já foi definido na classe pai.
  • Funções integradas: Funções como len() que funcionam com vários tipos de dados.

Vamos analisar a sobrescrita de métodos em detalhes.

Sobrescrita de métodos

A sobrescrita de métodos permite que uma classe filha forneça uma implementação específica de um método que já foi definido na classe pai. Esse é um aspecto essencial do polimorfismo.

Exemplo:

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

Criando classes filhas com métodos sobrescritos

Vamos criar classes filhas que herdam de Animal e sobrescrevem o método speak para fornecer comportamentos específicos.

Exemplo:

# 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

Usando polimorfismo com métodos sobrescritos

Agora, vamos criar objetos das classes filhas e ver como eles exibem comportamentos diferentes usando o mesmo nome de método.

Exemplo:

# 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 com funções integradas

O polimorfismo não se limita às classes definidas pelo usuário. As funções integradas do Python, como len(), funcionam com diferentes tipos de dados, demonstrando um comportamento polimórfico.

Exemplo:

# 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 exemplo: cálculo da área de formas

Vamos criar um programa que calcula a área de diferentes formas usando polimorfismo. Definiremos uma classe pai Shape e as classes filhas Circle e Rectangle, que sobrescrevem o 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()

Muito bem!

Você aprendeu sobre polimorfismo em Python e como ele permite que objetos de classes diferentes respondam de maneira única às mesmas chamadas de método. O polimorfismo aumenta a flexibilidade e a escalabilidade do seu código, facilitando seu gerenciamento e sua extensão. Continue praticando ao criar mais classes e métodos que utilizem comportamento polimórfico para fortalecer sua compreensão!

Polimorfismo  — ilustração 10

Perguntas Frequentes

A aula “Polimorfismo ” é grátis?

Sim — o texto completo de “Polimorfismo ” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python For Kids, atualize para CoddyKit PRO. O curso de Python For Kids inclui 5 aulas no total.

O que vou aprender em “Polimorfismo ”?

Explore conceitos avançados de POO. Você pratica Python For Kids com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python For Kids?

Nenhuma experiência prévia é necessária. Python For Kids no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 5 de 5.

Quanto tempo leva a aula “Polimorfismo ”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python For Kids?

Sim. Cada aula de Python For Kids inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Introdução à POO
  2. Criando classes e objetos
  3. Herança
  4. Encapsulamento
  5. Polimorfismo
← Voltar para Python For Kids