O que é polimorfismo na programação orientada a objetos (POO)?
sobes.tech IA
Resposta da IA
O polimorfismo na programação orientada a objetos (POO) é a propriedade dos objetos de se comportarem de forma diferente dependendo do seu tipo, permitindo usar a mesma interface (método) para lidar com diferentes tipos de dados. Isto proporciona flexibilidade e escalabilidade no código.
Principais tipos de polimorfismo:
-
Polimorfismo em tempo de compilação (estático): Realizado através da sobrecarga de métodos. Métodos diferentes têm o mesmo nome, mas diferem no conjunto e/ou tipos de parâmetros. O compilador determina qual método chamar com base na assinatura.
class Calculator { // Sobrecarga do método add public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } } -
Polimorfismo em tempo de execução (dinâmico): Realizado através da sobrescrita de métodos. A subclasse fornece sua própria implementação específica do método, que já está definido na superclasse. A escolha da implementação concreta ocorre em tempo de execução, com base no tipo real do objeto.
class Animal { // Método base public void sound() { System.out.println("O animal faz um som"); } } class Dog extends Animal { // Sobrescrita do método sound @Override public void sound() { System.out.println("O cão late"); } } // Exemplo de uso // Animal myDog = new Dog(); // Tipo real do objeto - Dog // myDog.sound(); // Chama o método sound da classe Dog
O polimorfismo permite escrever código mais abstrato e que descreve claramente o domínio do problema, facilitando a manutenção e a adição de novas funcionalidades sem alterar o código existente. No contexto de QA e QA Automation, compreender o polimorfismo é importante para trabalhar com frameworks de automação, onde são usadas classes/interfaces abstratas e suas implementações concretas (por exemplo, ao trabalhar com controladores para diferentes navegadores no Selenium).