Pengiriman Banyak vs. Kelebihan Fungsi

14

Saya mencoba memahami perbedaan (jika ada) antara keduanya.

Menurut halaman Wikipedia untuk Pengiriman Ganda , ini identik dengan Function Overloading, tetapi kemudian mengatakan:

Dalam bahasa dengan hanya pengiriman tunggal, seperti Java [...]

yang tampaknya seperti kontradiksi, karena Java mendukung fungsi overloading.

Jadi yang mana? Apakah Multiple Dispatch berbeda dari Function Overloading, atau apakah artikelnya salah dengan menyatakan bahwa Java tidak mendukung Multible Dispatch?

KaptajnKold
sumber

Jawaban:

16

Pengiriman ganda tidak (selalu) sama dengan fungsi overloading, meskipun mereka memiliki beberapa kesamaan. Dan Java tidak mendukung pengiriman ganda.

Dalam bahasa yang diketik secara statis, termasuk Java, perbedaan terbesar antara pengiriman dan overloading adalah bahwa overloading didasarkan pada tipe statis parameter (yaitu pilihan metode mana yang sebenarnya disebut ditentukan waktu kompilasi), sedangkan pengiriman didasarkan pada dinamika jenis (yaitu keputusan dibuat runtime). (Bahasa seperti itu biasanya tidak mendukung pengiriman ganda.)

Tapi sekali lagi, ini mungkin pertanyaan tentang terminologi. Dalam bahasa yang diketik secara dinamis, pengiriman dan kelebihan muatan tampaknya memang mengarah pada hal yang sama.

Péter Török
sumber