Polimorfismo
Polimorfismo é um dos princípios fundamentais da programação orientada a objetos (POO). Em Python, o polimorfismo permite que objetos de diferentes classes sejam tratados de maneira uniforme. Isso significa que, mesmo que diferentes classes possuam métodos com o mesmo nome, esses métodos podem ser chamados de maneira consistente. Neste tutorial, vamos explorar o polimorfismo em Python, incluindo o polimorfismo de método e o polimorfismo de classe.
1. Polimorfismo de Método:
O polimorfismo de método permite que diferentes classes tenham métodos com o mesmo nome, mas com comportamentos diferentes. Isso é alcançado sobrescrevendo métodos na classe filha.
class Animal:
def fazer_som(self):
pass
class Cachorro(Animal):
def fazer_som(self):
return "Woof!"
class Gato(Animal):
def fazer_som(self):
return "Meow!"
# Função para fazer os animais fazerem som
def fazer_som_animal(animal):
return animal.fazer_som()
cachorro = Cachorro()
gato = Gato()
print(fazer_som_animal(cachorro)) # Saída: Woof!
print(fazer_som_animal(gato)) # Saída: Meow!
Neste exemplo, fazer_som_animal()
pode chamar o método fazer_som()
de diferentes classes (Cachorro
e Gato
) e obter resultados diferentes.
2. Polimorfismo de Classe:
O polimorfismo de classe permite que diferentes classes sejam tratadas como instâncias de uma classe comum. Isso é útil para criar classes que possam interagir de maneira uniforme, independentemente de sua implementação específica.
class Veiculo:
def mover(self):
pass
class Carro(Veiculo):
def mover(self):
return "Carro se movendo na estrada."
class Aviao(Veiculo):
def mover(self):
return "Avião voando no céu."
# Função para fazer veículos se moverem
def mover_veiculo(veiculo):
return veiculo.mover()
carro = Carro()
aviao = Aviao()
print(mover_veiculo(carro)) # Saída: Carro se movendo na estrada.
print(mover_veiculo(aviao)) # Saída: Avião voando no céu.
Neste exemplo, mover_veiculo()
pode chamar o método mover()
de diferentes classes (Carro
e Aviao
) e obter comportamentos diferentes, mostrando o polimorfismo de classe em ação.
O polimorfismo em Python é uma técnica poderosa que permite que diferentes classes sejam tratadas de maneira uniforme. Seja ao utilizar o polimorfismo de método para chamar métodos com o mesmo nome de diferentes classes ou ao usar o polimorfismo de classe para tratar diferentes classes como instâncias de uma classe comum, o polimorfismo é fundamental para a flexibilidade e a reutilização de código na programação orientada a objetos.