Invio multiplo vs. sovraccarico di funzioni


14

Sto cercando di capire la differenza (se presente) tra i due.

Secondo la pagina di Wikipedia per Multiple Dispatch è sinonimo di sovraccarico di funzioni, ma in seguito continua dicendo:

In una lingua con un solo invio, come Java […]

che sembra una contraddizione, poiché Java supporta il sovraccarico delle funzioni.

Quindi che cos'è? Spedizione multipla è diversa dal sovraccarico delle funzioni o l'articolo è errato nel sostenere che Java non supporta la spedizione multipla?

Risposte:


16

L'invio multiplo non è (sempre) uguale al sovraccarico delle funzioni, sebbene presentino alcune somiglianze. E Java non supporta l'invio multiplo.

Nei linguaggi tipicamente statici, incluso Java, la più grande differenza tra dispacciamento e sovraccarico è che il sovraccarico si basa sul tipo statico di parametri (cioè la scelta di quale metodo viene effettivamente chiamato viene deciso in fase di compilazione), mentre il dispaccio si basa sulla dinamica tipi (ovvero la decisione viene presa in fase di esecuzione). (Tali lingue di solito non supportano la spedizione multipla.)

Ma poi di nuovo, questa potrebbe essere una questione di terminologia. In linguaggi tipicamente dinamici, la spedizione e il sovraccarico sembrano in effetti ridursi alla stessa cosa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.