1. Sobrecarga do método
O nome do método é o mesmo, mas os parâmetros são diferentes, isso é sobrecarga.
Os chamados parâmetros diferentes têm dois pontos principais: o primeiro é que o número de parâmetros é diferente e o segundo é que os tipos de parâmetros são diferentes. Enquanto um desses dois aspectos for diferente, ele pode constituir uma sobrecarga do método.
pacote cn.galc.test; public class testoverload {void max (int a, int b) {system.out.println (a> b? A: b); } / * * int max (int a, int b) { * return a> b? A: B; *} */ void max (float a, float b) {system.out.println (a> b? A: b); }}Aqui, os dois métodos máximos com modificador de vazios têm o mesmo nome, mas seus tipos de parâmetros são diferentes, para que possam constituir sobrecarga. O método int max (int a, int b) e o método Void Max (int a, int b) não constituem sobrecarga. Agora eles são dois métodos com nomes duplicados. Não é permitido declarar dois métodos com nomes duplicados em uma classe e haverá um erro na compilação. O nome do método é o mesmo e o tipo de parâmetro é o mesmo. Somente o valor de retorno é diferente. Isso não constitui uma sobrecarga, porque o método pode ser chamado dessa maneira. Não pode ser usado ao chamar um método. Portanto, ao chamar esses dois métodos, o número inteiro é passado. Como ambos os métodos têm o mesmo nome e o mesmo tipo de parâmetro, o compilador não pode distinguir qual método deve ser chamado. A razão para o nível profundo de sobrecarga: desde que o compilador desses dois métodos possa distingui -los e saber qual deles a ser chamado ao ligar, não haverá confusão, esses dois métodos constituem sobrecarga.
Vejamos os dois métodos a seguir:
int max (int a, int b) {system.out.println ("o método int max (int a, int b) chamado"); retornar a> b? A: b;} int max (curto a, curto b) {System.out.println ("o método int max (curto a, curto b) chamado"); retornar a> b? A: B;} Esses dois métodos também podem constituir sobrecarga, porque o compilador o tratará como um tipo int assim que ele vir um número inteiro. Portanto, ao passar um número inteiro, o compilador chama o método max (int a, int b). Se você quiser chamar o método max (curto a, curto b), você deve escrevê -lo no método principal como este:
public static void main (string [] args) {testOverload t = new TestOverload (); T.Max (3,4); // O método max (int a, int b) é chamado de curta a = 3; curto b = 4; T.Max (A, B); // O método max (curto a, curto B) é chamado aqui. }2. Sobrecarregamento dos métodos de construção
Como métodos comuns, os construtores também podem ser sobrecarregados
pacote cn.galc.test; public class Pessoa {int id; Int Age; / *** construtor*/ public Person () {id = 0; idade = 20; } / *** Sobrecarga do construtor One* @param i* / public pessoa (int i) {id = i; idade = 20; } / ** * Sobrecarga do construtor Two * @param i * @param j * / public pessoa (int i, int j) {id = i; idade = j; }}O exposto acima é uma explicação detalhada do sobrecarga dos métodos Java. Espero que seja útil para o aprendizado de todos.