1. Sobrecarga del método
El nombre del método es el mismo, pero los parámetros son diferentes, esto es una sobrecarga.
Los llamados parámetros diferentes tienen dos puntos principales: el primero es que el número de parámetros es diferente, y el segundo es que los tipos de parámetros son diferentes. Mientras uno de estos dos aspectos sea diferente, puede constituir una sobrecarga del método.
paquete 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); }}Aquí, los dos métodos máximos con modificador vacío tienen el mismo nombre, pero sus tipos de parámetros son diferentes, por lo que pueden constituir una sobrecarga. El método int max (int a, int b) y el método void max (int a, int b) no constituyen sobrecarga. Ahora son dos métodos con nombres duplicados. No se permite declarar dos métodos con nombres duplicados en una clase, y habrá un error en la compilación. El nombre del método es el mismo y el tipo de parámetro es el mismo. Solo el valor de retorno es diferente. Esto no constituye una sobrecarga, porque el método puede llamarse de esta manera. No se puede usar al llamar a un método. Por lo tanto, al llamar a estos dos métodos, el número entero se pasa. Dado que ambos métodos tienen el mismo nombre y el mismo tipo de parámetro, el compilador no puede distinguir qué método se llama. La razón del nivel profundo de sobrecarga: mientras el compilador de estos dos métodos pueda distinguirlos y saber cómo llamarse al llamar, no habrá confusión, estos dos métodos constituyen sobrecarga.
Veamos los siguientes dos métodos:
int max (int a, int b) {system.out.println ("el método int max (int a, int b) llamado"); devolver a> b? a: b;} int max (corto a, corto b) {System.out.println ("el int max (corto a, corto B) llamado"); devolver a> b? A: B;} Estos dos métodos también pueden constituir una sobrecarga, porque el compilador lo tratará como un tipo INT tan pronto como ve a un entero. Entonces, al pasar un entero, el compilador primero llama al método max (int a, int b). Si desea llamar al método Max (corto A, Short B), debe escribirlo en el método principal como este:
public static void main (string [] args) {testoverload t = new testOverload (); T.max (3,4); // El método max (int a, int b) se llama corto a = 3; corto B = 4; t.max (a, b); // El método max (corto A, corto b) se llama aquí. }2. Sobrecarga de métodos de construcción
Al igual que los métodos ordinarios, los constructores también se pueden sobrecargar
paquete cn.galc.test; public class Person {int id; int Age; / *** constructor*/ public persona () {id = 0; edad = 20; } / *** Constructor sobrecarga una* @param i* / public persona (int i) {id = i; edad = 20; } / ** * Constructor sobrecarga dos * @param i * @param j * / pública persona (int i, int j) {id = i; edad = j; }}Lo anterior es una explicación detallada de la sobrecarga de métodos Java. Espero que sea útil para el aprendizaje de todos.