Melebihi muatan dengan Jenis Pulangan Berbeza
Dalam pengaturcaraan, terlebih muatan membenarkan fungsi dengan nama yang sama wujud dalam kelas atau ruang nama tetapi dengan parameter berbeza . Walau bagaimanapun, dalam Java, tidak mungkin untuk membebankan fungsi semata-mata berdasarkan jenis pemulangannya.
Mengapa tidak?
Pengkompil Java bergantung pada kedua-dua tandatangan fungsi dan jenis pulangan untuk mengenal pasti fungsi secara unik. Jika pengkompil membenarkan lebihan muatan mengikut jenis pulangan sahaja, ia akan mewujudkan kesamaran. Pertimbangkan contoh berikut:
<code class="java">public int foo() {...} public float foo() {..} ... foo(); // which one to call?</code>
Dalam kes ini, pengkompil tidak boleh menentukan kaedah foo yang hendak dilaksanakan berdasarkan jenis pulangan sahaja. Kekaburan ini akan membawa kepada ralat kompilasi.
Masa Depan Java
Pada masa ini tiada rancangan untuk mengubah tingkah laku ini dalam versi Java akan datang. Spesifikasi Bahasa Java secara eksplisit menyatakan bahawa "dua kaedah tidak boleh mempunyai tandatangan yang sama, walaupun ia mempunyai jenis pulangan yang berbeza."
C Pertimbangan
Melebihi muatan mengikut jenis pulangan ialah juga tidak mungkin dalam C. Sama seperti Java, pengkompil C menggunakan semua parameter, termasuk jenis pulangan, untuk membezakan antara fungsi dengan nama yang sama. Pendekatan ini memastikan bahawa panggilan fungsi tertentu sentiasa merujuk kepada pelaksanaan yang dimaksudkan.
Atas ialah kandungan terperinci Mengapa Anda Tidak Boleh Membebankan Kaedah Berdasarkan Semata-mata pada Jenis Pulangan dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!