Junior
O que deve distinguir dois métodos para que possamos considerá-los sobrecarregados?
sobes.tech IA
Resposta da IA
Para que dois métodos sejam considerados sobrecarregados, eles devem atender às seguintes condições:
- Nome do método igual. O nome dos métodos deve ser idêntico.
- Assinatura do método diferente. A assinatura do método inclui o nome do método e a lista de tipos de parâmetros (sua quantidade, ordem e tipos). O tipo de retorno do método não faz parte da assinatura e não afeta a sobrecarga.
Exemplos:
class Example {
void print(int num) { // Assinatura: print(int)
System.out.println(num);
}
void print(String text) { // Assinatura: print(String)
System.out.println(text);
}
void print(int num, String text) { // Assinatura: print(int, String)
System.out.println(num + " " + text);
}
// Isto não é sobrecarga, pois a assinatura print(int) se repete
// int print(int num) {
// return num;
// }
}
Tabela ilustrando exemplos de sobrecarga:
| Nome do método | Tipos de parâmetros | Métodos iguais / diferentes | É sobrecarga? | Razão |
|---|---|---|---|---|
calc |
(int, int) |
Diferentes | Sim | Assinatura diferente (quantidade e tipos de parâmetros) |
calc |
(double, double) |
Diferentes | Sim | Assinatura diferente (tipos de parâmetros) |
calc |
(int, int, int) |
Diferentes | Sim | Assinatura diferente (quantidade de parâmetros) |
calc |
() |
Diferentes | Sim | Assinatura diferente (quantidade de parâmetros) |
calc |
(int, int) |
Iguais | Não | Mesma assinatura |
calculate |
(int, int) |
Diferentes | Não | Nome do método diferente |