Despacho múltiple versus sobrecarga de funciones

14

Estoy tratando de entender la diferencia (si existe) entre los dos.

De acuerdo con la página de Wikipedia para Multiple Dispatch es sinónimo de función de sobrecarga, pero luego continúa. :

  

En un idioma con un solo envío, como Java [...]

que parece una contradicción, ya que Java admite la sobrecarga de funciones.

Entonces, ¿cuál es? ¿Es el envío múltiple diferente de la sobrecarga de funciones, o el artículo es incorrecto al afirmar que Java no es compatible con el envío de Multible?

    
pregunta KaptajnKold 14.12.2011 - 12:57

1 respuesta

16

El envío múltiple no es (siempre) lo mismo que la sobrecarga de funciones, aunque sí tienen algunas similitudes. Y Java no admite el envío múltiple.

En los lenguajes de tipo estático, incluido Java, la mayor diferencia entre el envío y la sobrecarga es que la sobrecarga se basa en el tipo de parámetros static (es decir, la elección del método que realmente se llama se decide compilar) tiempo), mientras que el envío se basa en los tipos dynamic (es decir, la decisión se toma en tiempo de ejecución). (Estos idiomas generalmente no admiten envíos múltiples).

Pero, de nuevo, esto puede ser una cuestión de terminología. En los idiomas tipificados dinámicamente, el envío y la sobrecarga parecen reducirse a lo mismo.

    
respondido por el Péter Török 14.12.2011 - 13:18

Lea otras preguntas en las etiquetas