Ejemplo

Sobrecarga de métodos 🔁

Sin sobrecarga ❌

public class Empleado {
    private int salarioBase;
    private int tasaHoraria;

    public Empleado(int salarioBase, int tasaHoraria) {
        this.salarioBase = salarioBase;
        this.tasaHoraria = tasaHoraria;
    }

    // Método con parámetro
    public int calcularSalarioBase(int horaExtra) {
        return salarioBase + (tasaHoraria * horaExtra);
    }
}

MAIN

public class Main {
    public static void main(String[] args) {
        Empleado e = new Empleado(1000, 20);

        // Si no hay horas extra, tenemos que pasar 0
        int salario = e.calcularSalarioBase(0);
        System.out.println("Salario sin extras: " + salario);
    }
}

Con sobrecarga ✅

public class Empleado {
    private int salarioBase;
    private int tasaHoraria;

    public Empleado(int salarioBase, int tasaHoraria) {
        this.salarioBase = salarioBase;
        this.tasaHoraria = tasaHoraria;
    }

    // Método con parámetro
    public int calcularSalarioBase(int horaExtra) {
        return salarioBase + (tasaHoraria * horaExtra);
    }

    // Método sobrecargado (sin parámetro)
    public int calcularSalarioBase() {
        return calcularSalarioBase(0); // reusa la lógica
    }
}

MAIN con sobrecarga 🚀

public class Main {
    public static void main(String[] args) {
        Empleado e = new Empleado(1000, 20);

        // Con horas extra
        int conExtras = e.calcularSalarioBase(10);
        System.out.println("Con 10 horas extra: " + conExtras);

        // Sin horas extra (sobrecarga)
        int sinExtras = e.calcularSalarioBase();
        System.out.println("Sin horas extra: " + sinExtras);
    }
}

Resultado en consola 📟

Con 10 horas extra: 1200
Sin horas extra: 1000