image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Edney Landim
Edney Landim28/01/2023 14:41
Compartilhe

Orientação a objetos: Polimorfismo

    Fala, meu cod3r e minha cod3r. Como estamos? Espero que bem, pois hoje vou abordar talvez o principal pilar da orientação a objetos: o polimorfismo.

    Vamos entender que problema essa ferramenta resolve, explicar suas características e mostrar tudo isso em código. Vou usar C++, mas se você não conhece a linguagem, não há problema, foque nos conceitos. Vamos lá!

    O que é o polimorfismo?

    Primeiramente, o que é polimorfismo? A própria palavra já diz muito: o prefixo grego “poli” nos remete a algo que tem vários de alguma coisa, uma pessoa poliglota fala várias línguas, por exemplo.

    No caso do polimorfismo não é diferente, pois algo polimórfico assume diferentes formas. Ou seja, polimorfismo é uma mesma coisa que assumir várias formas. E por que isso seria importante na programação? Porque com o paradigma orientado a objetos, podemos ter classes assumindo diferentes funcionalidades enquanto compartilham de uma classe mãe ou interface em comum.

    Tudo bem até aqui? Então agora vamos ver em código!

    Criando a classe mãe Animal

    A classe a seguir, na figura 1, representa um animal qualquer. O que todo animal faz? Um som. Assim, vejamos como ficaria:

    imagefigura1

    Já que todo animal faz um som, o método, se chamado de um objeto da classe mãe fazerSom() vai retornar uma mensagem genérica.

    Criando as classes filha

    A seguir, as classes na figura 2, representam as classes filha da classe Animal. Aqui eu criei 3 tipos específicos de animais: Galinha, Cachorro e Gato.

    imagefigura 2

    Por serem filhas, elas herdam os métodos da mãe. Faz sentido, não? Porém, cada animal desse faz um som diferente, então simplesmente reescrevemos o método fazerSom() para diferentes animais.

    Testando o código

    imagefigura 3

    Por último, na figura 3 testamos nosso código. Foram instanciados objetos de todas as classes criadas. No entanto, o método comum a todos retorna um som diferente para cada um desses objetos. Isso, então, é polimorfismo. Mais especificamente nesse exemplo, um método polimórfico.

    Por que polimorfismo é bom?

    Mas por que fazer uso dessa abordagem? Ela deixa o código mais modular e mantenível, além de diminuir bruscamente a quantidade de operadores condicionais.

    Imagina ter que fazer um if toda vez que fôssemos chamar o método fazerSom()? Quanto mais animais, mais difícil ficaria e, claro, mais suscetível a bugs. Por isso, essa ferramenta talvez seja o principal pilar desse paradigma.

    Conclusão

    Essa é uma explicação básica para iniciantes no tema, portanto, se tiverem dúvidas ou quiserem dar alguma sugestão de temas de orientação a objetos, deixem nos comentários. Espero que tenha ajudado de alguma forma.

    Até mais!

    Fonte: Cod3r

    Compartilhe
    Comentários (3)
    Sara Silva
    Sara Silva - 28/01/2023 20:18

    Obrigada por compartilhar, muito bom

    Jefferson Ferreira
    Jefferson Ferreira - 28/01/2023 18:03

    Boa tarde,


    Enfim, a classe Mamífero tem o método locomoverSer():


    Superclasse Mamífero:


    locomoverSe() {

    // A ser implementado em alguma subclasse.

    }


    As subclasses Macaco, Homem e Baleia herdam e sobrescrevem o método citado da seguinte forma:


    Subclasse Macaco:


    locomoverSe() {

    pulandoDeGalhoEmGalho;

    }


    subclasse Homem:


    locomoverSe() {

    andando;

    }


    subclasse Baleia:


    locomoverSe() {

    nadando;

    }


    Os objetos de cada classe responderam à mesma mensagem (locomover()), mas cada um de uma forma diferente. O que caracteriza o principal conceito do polimorfismo.

    Matheus Biserra
    Matheus Biserra - 28/01/2023 16:20

    Excelente explicação!