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.

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!

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.