A sobrecarga de mĂ©todos (Method Overloading) Ă© um recurso da Programação Orientada a Objetos que permite criar mĂșltiplas versĂ”es do mesmo mĂ©todo dentro da mesma classe, desde que tenham assinaturas diferentes.

Isso deixa o cĂłdigo mais flexĂ­vel, expressivo e fiel ao mundo real, onde uma mesma ação pode acontecer de muitas formas diferentes — como um ninja realizando um jutsu! đŸ„·âšĄ


📌 O que vocĂȘ precisa saber

✹ O que Ă© sobrecarga?

É quando dois ou mais mĂ©todos possuem:

👉 O Java escolhe automaticamente qual mĂ©todo chamar, com base nos parĂąmetros fornecidos.


đŸ§Ÿ O que nĂŁo difere mĂ©todos?

Apenas os parĂąmetros contam para sobrecarga.


đŸ„· Exemplo Ninja – InteligĂȘncia de Combate

public abstract class Ninja implements EstrategiaDeBatalha {

    String nome;
    String aldeia;
    int idade;
    int numeroDeMissoesConcluidas;
    NivelNinja rank;

    // đŸ”č VersĂŁo padrĂŁo
    public void inteligenciaDeCombate() {
        System.out.println("Meu nome Ă©: " + nome + " e essa Ă© minha inteligĂȘncia de combate!");
    }

    // đŸ”č Sobrecarga recebendo o QI
    public void inteligenciaDeCombate(int qi) {
        if (qi > 150) {
            System.out.println("QI: " + qi + " ➀ VocĂȘ Ă© um gĂȘnio! 🧠💡");
        } else if (qi >= 130) {
            System.out.println("QI: " + qi + " ➀ Ninja promissor! đŸ’Ș");
        } else {
            System.out.println("QI: " + qi + " ➀ Treine mais suas estratĂ©gias. đŸ„Č");
        }
    }
}


đŸ”„ Sobrecarga real com realizarJutsu()