A veces necesitamos que dos o más métodos de una misma clase tengan el mismo nombre, pero con diferentes argumentos o distintos tipos de argumentos/valores de retorno.
Afortunadamente, Java nos permite ejecutar código y métodos diferentes dependiendo de los argumentos que reciba nuestra clase.
publicclassCalculadora{// Los dos parámetros y el valor de retorno son de tipo intpublicintsuma(int a,int b){return a + b;}// Los dos parámetros y el valor de retorno son de tipo floatpublicfloatsuma(float a,float b){return a + b;}// Un parámetro es de tipo int, mientras que el otro parámetro// y el valor de retorno son de tipo floatpublicfloatsuma(int a,float b){return a + b;}}
El uso más común de la sobrecarga de métodos es la sobrecarga de constructores para instanciar objetos de formas distintas dependiendo de la cantidad de argumentos que enviamos.
publicclassDoctor{staticint id =0;String name;String speciality;publicDoctor(){this.name ="Nombre por defecto";this.speciality ="Especialidad por defecto";}publicDoctor(String name,String speciality){this.name = name;this.speciality = speciality;}}