Polimorfismo em Python

Quer entender como o polimorfismo funciona em Python e ver exemplos práticos com classes? Leia este artigo!

Por
2 min. de leitura

Fala, meus consagrados! Beleza?

Polimorfismo é um conceito fundamental na programação orientada a objetos, que permite que diferentes classes tratem da mesma interface ou método de maneira distinta. No contexto de Python, o polimorfismo se manifesta na capacidade de funções ou métodos de operar em objetos de diferentes tipos, desde que esses objetos implementem métodos ou atributos esperados. 

Python suporta o polimorfismo e, como exemplo, iremos estudar três classes, conforme a figura 1: superclasse Pessoa e subclasses Aluno e Professor e vamos trabalhar a sobrescrita do método saudacao().

Figura 1: Superclasse Pessoa e subclasses Aluno e Professor.

Exemplo:

Interface gráfica do usuário, Texto, Aplicativo

Descrição gerada automaticamente

No exemplo acima, temos a superclasse Pessoa com um atributo de instância nome e um método de instância saudacao(). Tanto a subclasse Aluno quanto a subclasse Professor herdaram o método e sobrescreveram. Cada uma dando uma implementação específica, de acordo com sua classe.

Na linha 15, a variável zé apontou para um objeto da classe Pessoa. A partir da variável, acessamos o método saudacao() (linha 16) e foi retornado “Sou uma pessoa e meu nome é José Gildo Araújo”.

Na linha 18, criamos uma variável kalel, apontando para uma instância da subclasse Aluno. Acessamos o método sobrescrito saudacao() (linha 19) e o retorno foi “Sou um aluno e meu nome é Kal-El Gildo Araújo”.

Já na linha 21, há a variável rogerio que guarda o objeto da classe Professor. Na linha 22, acessamos o método sobrescrito saudacao() e o retorno é “Sou um professor e meu nome é Rogério Gildo Araújo”.

Notem que a mesma mensagem (saudacao()) foi respondida de forma diferente, dependendo da superclasse e das suas subclasses.

Como mais um exemplo de polimorfismo, vamos usar o exemplo da superclasse Carro e sua subclasse Fusca, que foram cobradas em uma questão na seção 3.2.1.

Exemplo:

Interface gráfica do usuário, Texto, Aplicativo, chat ou mensagem de texto

Descrição gerada automaticamente

A superclasse Carro possui um método de instância (FaleComigo()). A subclasse Fusca, por sua vez, herdou esse método e o sobrescreveu. Além disso, a subclasse possui um método de instância específico (FaleComUmFusca()).

Na linha 12, temos a variável x que apontou para um objeto da superclasse Carro. Na linha 13, a variável y apontou para um objeto da subclasse Fusca.

Na linha 15, acionamos o método de instância FaleComigo() do objeto apontado pela variável x, então foi impresso “Sou um carro”. 

Na linha 16, acionamos o método sobrescrito FaleComigo() do objeto apontado pela variável y, então foi impresso “FaleComigo: Sou um Fusca”. Já na linha 17, traz o método de instância FaleComUmFusca() do objeto apontado pela variável y, imprimindo o texto “FaleComUmFusca: Sou um Fusca”.

Espero que tenham gostado! 

Forte abraço e até a próxima jornada!

_________________________

Professor Rogerão Araújo

Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil?
clique nos links abaixo:

Concursos Abertos

Concursos 2024

Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
clique no link abaixo e inscreva-se gratuitamente:

Telegram

Por
2 min. de leitura