Sobes.tech
Junior

Qual é o significado do polimorfismo na programação?

sobes.tech IA

Resposta da IA

O polimorfismo permite usar objetos de diferentes classes que têm uma interface comum, através de um "tipo" comum (por exemplo, uma classe base ou interface).

O seu principal significado:

  • Unificação do trabalho com objetos: Permite escrever código que não depende do tipo específico do objeto, mas que funciona com ele através de uma abstração.
  • Flexibilidade: É fácil adicionar novas classes que implementem a mesma interface, sem modificar o código existente que usa essa abstração.
  • Legibilidade e manutenção: O código torna-se mais estruturado e compreensível, pois oculta a complexidade da implementação concreta por trás de uma interface única.

O princípio consiste em que o mesmo método, chamado em diferentes objetos, comporta-se de forma diferente, dependendo do seu tipo concreto.

Exemplo em PHP:

<?php

interface Animal {
    public function makeSound();
}

class Dog implements Animal {
    public function makeSound() {
        return "Woof!";
    }
}

class Cat implements Animal {
    public function makeSound() {
        return "Meow!";
    }
}

function hearAnimalSound(Animal $animal) {
    echo $animal->makeSound() . "\n";
}

$dog = new Dog();
$cat = new Cat();

hearAnimalSound($dog); // Vai imprimir "Woof!"
hearAnimalSound($cat); // Vai imprimir "Meow!"

?>

Neste exemplo, a função hearAnimalSound aceita qualquer objeto que implemente a interface Animal. A chamada do método makeSound() dentro desta função comporta-se de forma diferente para objetos Dog e Cat, demonstrando o polimorfismo.