En Java, es posible tener dos funciones con el mismo nombre en una clase siempre y cuando los parámetros de entrada de cada una de ellas sean diferentes. Esto se conoce como sobrecarga de métodos.
Por ejemplo, podrías tener dos métodos con el mismo nombre "sumar" uno que recibe dos números enteros y devuelve la suma y otro que recibe dos números flotantes y también devuelve la suma.
public int sumar(int a, int b) {
return a + b;
}
public float sumar(float a, float b) {
return a + b;
}
En Python y Javascript no existe soporte nativo para sobrecarga de métodos. Puedes escribir varias funciones con el mismo nombre, pero el intérprete simplemente usará la última función definida.
En Java el compilador tiene la capacidad de saber a qué función apuntar, dependiendo del tipo de argumentos que estés intentando pasar.
Esto es posible porque en Java realmente estas funciones no están ocupado el mismo espacio de memoria.