O Polimorfismo permite que diferentes classes respondam de maneiras diferentes a um mesmo método, mantendo uma estrutura comum.
É como pedir para vários ninjas usarem seu melhor jutsu — cada um usa o seu, mas todos atendem ao mesmo comando "usarJutsu()". 🥷
Polimorfismo significa literalmente:
"Muitas formas", ou seja, um único método pode ter múltiplas implementações dependendo do objeto que o chama.
➡️ Ocorre quando subclasses reescrevem um método da superclasse.
➡️ É decidido em tempo de execução.
Exemplo:
Ninja n1 = new Uzumaki();
Ninja n2 = new Uchiha();
n1.usarJutsu(); // Rasengan
n2.usarJutsu(); // Chidori
➡️ Métodos com o mesmo nome, mas parâmetros diferentes.
➡️ Acontece em tempo de compilação.
Exemplo:
void atacar() {}
void atacar(String jutsu) {}
void atacar(String jutsu, int poder) {}