Despacho múltiple versus sobrecarga de funciones

14

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

Según la página de Wikipedia para Despacho múltiple , es sinónimo de sobrecarga de funciones, pero luego continúa diciendo:

En un lenguaje con un solo despacho, como Java […]

lo 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 admite el envío múltiple?

KaptajnKold
fuente

Respuestas:

16

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

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

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

Péter Török
fuente