A partir do Java 5 podemos escrever métodos com um número variável de parâmetros, é o chamado varargs. Com isso podemos criar métodos bem flexÃveis e elegantes, principalmente se aplicando isso juntamente com outros recursos como o loop melhorado e polimorfismo.
Esse exemplo cria uma classe Estatistica com o método media que pode receber um número variável de argumentos do tipo int.
public class Estatistica {
public float media(int... numeros){
float soma = 0;
for(int num: numeros)
soma += num;
return soma/numeros.length;
}
public static void main(String[] args) {
Estatistica est = new Estatistica();
System.out.println( est.media(1,2,3) );
System.out.println( est.media(0,1,2,3,4,5,6,7,8,9,10) );
System.out.println( est.media(10,20,30) );
}
}
$ javac Estatistica.java
$ java Estatistica
2.0
5.0
20.0
Legal, né? Isso sim é sobrecarga de método. 😉