Pular para o conteúdo principal
Documentos
Palavras-chave JavaMatrizes JavaProgramação orientada a objetos em JavaManuseio de arquivos JavaIntrodução ao JavaNoções básicas da linguagem Java

Java Polymorphism

O polimorfismo em Java é um conceito central da programação orientada a objetos (OOP) que permite que os objetos sejam tratados como instâncias de sua classe principal. Isso facilita a flexibilidade e a capacidade de definir métodos de várias formas. O polimorfismo é obtido principalmente por meio da substituição e sobrecarga de métodos.

Uso

O polimorfismo é usado para executar uma única ação de diferentes maneiras. Ele permite a implementação do envio de métodos dinâmicos, em que o método a ser executado é determinado no tempo de execução. Isso é benéfico para a implementação de uma base de código mais limpa e de melhor manutenção.

Tipos de polimorfismo

  1. Polimorfismo em tempo de compilação (sobrecarga de método): Você consegue isso definindo vários métodos com o mesmo nome, mas com parâmetros diferentes na mesma classe.
  2. Polimorfismo em tempo de execução (substituição de método): Alcançado quando uma subclasse fornece uma implementação específica de um método já definido em sua superclasse.

Exemplos

Exemplo 1: Sobrecarga de métodos


public class OverloadingExample {
    public int add(int a, int b) {
        return a + b;
    }

    public double add(double a, double b) {
        return a + b;
    }

    public static void main(String[] args) {
        OverloadingExample obj = new OverloadingExample();
        System.out.println("Sum of integers: " + obj.add(5, 10));
        System.out.println("Sum of doubles: " + obj.add(5.5, 10.5));
    }
}
    

Neste exemplo, o método add é sobrecarregado com duas listas de parâmetros diferentes. O método apropriado é chamado com base nos argumentos passados.

Exemplo 2: Sobreposição de métodos


class Animal {
    public void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Dog barks");
    }
}

public class OverridingExample {
    public static void main(String[] args) {
        Animal myAnimal = new Dog();
        myAnimal.sound(); // Outputs "Dog barks"
    }
}
    

Aqui, a classe Dog substitui o método sound da classe Animal. O método sound da classe Dog é chamado em tempo de execução.

Dicas e práticas recomendadas

  • Use a sobrecarga de métodos de forma criteriosa: Certifique-se de que os métodos sobrecarregados executem funções semelhantes para evitar confusão.
  • Substituir métodos adequadamente: Use a anotação @Override para indicar que um método se destina a substituir um método em uma superclasse, o que ajuda a evitar erros.
  • Aproveite o polimorfismo para obter flexibilidade: Use o polimorfismo para escrever códigos mais genéricos e reutilizáveis.
  • Entenda a resolução do método: Lembre-se de que a resolução de métodos substituídos ocorre em tempo de execução, enquanto a resolução de métodos sobrecarregados ocorre em tempo de compilação.
  • Use interfaces e classes abstratas: Utilize interfaces e classes abstratas para definir comportamentos comuns que podem ser implementados polimorficamente em diferentes classes.

Learn Java Essentials

Desenvolva suas habilidades em Java desde o início e domine os conceitos de programação.
Comece a aprender de graça