Java · Essencial · Português · Técnico
sobrecarga
Definir vários métodos com o mesmo nome na mesma classe, mas com parâmetros diferentes em tipo ou quantidade. O compilador escolhe qual chamar.
Onde usar
Aparece em APIs como println e String.valueOf. Gera confusão com conversões automáticas: remove(int) e remove(Object) em List têm efeitos bem distintos.
Em código
var l = new ArrayList<>(List.of(10, 20, 30));
l.remove(1); // índice 1: [10, 30]
l.remove(Integer.valueOf(30)); // valor 30Exemplos
Cuidado com a sobrecarga de remove na lista.
Criamos uma sobrecarga que recebe a data como parâmetro.
Cuidado
Não confunda com sobrescrita (override): a sobrecarga muda a assinatura; a sobrescrita redefine o mesmo método na subclasse.
Sinônimos
overload