Java membenarkan pemuatan kaedah, di mana dua atau lebih kaedah kelas yang sama boleh berkongsi nama yang sama.
Pembebanan kaedah berlaku apabila pengisytiharan parameter kaedah berbeza.
Pembebanan kaedah ialah cara melaksanakan polimorfisme di Jawa.
Untuk membebankan kaedah, anda perlu mengisytiharkan versi yang berbeza bagi kaedah tersebut.
Pengkompil secara automatik memilih kaedah yang betul berdasarkan parameter.
Sekatan penting: kaedah terlebih beban mesti berbeza dalam jenis dan/atau bilangan parameter, bukan hanya jenis pemulangan.
Kaedah lebih muatan juga boleh berbeza dalam jenis pemulangannya, tetapi parameter penting untuk memilih kaedah yang betul.
Apabila kaedah terlebih muatan dipanggil, versi dengan parameter yang sepadan dengan hujah akan dilaksanakan.
Kaedah ovlDemo() dibebankan sebanyak empat kali dengan tandatangan berbeza:
Versi pertama: tiada parameter.
Versi kedua: dengan parameter integer.
Versi ketiga: dengan dua parameter integer.
Versi keempat: dengan dua parameter berganda.
Dua versi pertama ovlDemo() mengembalikan batal, manakala dua versi terakhir mengembalikan nilai.
Pembebanan kaedah tidak terjejas oleh jenis pemulangan.
Percubaan untuk menggunakan kedua-dua versi ovlDemo() dengan tandatangan hanya dibezakan mengikut jenis pemulangan akan menyebabkan ralat.
Perbezaan dalam jenis pulangan tidak mencukupi untuk kaedah lebihan beban di Jawa.
Contoh menunjukkan bahawa dua kaedah dengan tandatangan yang sama, walaupun dengan jenis pulangan yang berbeza, menyebabkan ralat.
Java melakukan penukaran jenis automatik dan penukaran ini juga digunakan pada parameter kaedah terlebih beban.
Contoh menunjukkan dua versi kaedah f(): satu dengan parameter int dan satu lagi dengan parameter berganda.
Nilai jenis bait dan pendek ditukar kepada int secara automatik dengan memanggil kaedah f(int).
Nilai apungan ditukar kepada dua kali ganda dengan memanggil kaedah f(double).
Penukaran automatik berlaku apabila tiada padanan langsung antara parameter dan hujah.
Menambah versi f() dengan parameter bait boleh mengubah cara nilai dikendalikan.
Dengan versi semasa, apabila f() dipanggil dengan hujah bait, f(bait) dipanggil terus, tanpa penukaran automatik kepada int.
Pembebanan kaedah membolehkan polimorfisme dalam Java, memudahkan pelaksanaan paradigma "satu antara muka, banyak kaedah".
Dalam bahasa tanpa sokongan yang berlebihan, kaedah serupa untuk jenis data yang berbeza perlu mempunyai nama yang berbeza (cth. abs(), labs(), fabs() dalam C).
Java membolehkan anda menggunakan nama yang sama untuk kaedah dengan jenis argumen yang berbeza, seperti kaedah abs() kelas Matematik, yang terlebih beban untuk jenis angka yang berbeza.
Pemuatan berlebihan mengurangkan kerumitan dengan membenarkan kaedah yang berkaitan berkongsi nama yang sama.
Pemilihan versi kaedah yang betul dilakukan oleh pengkompil berdasarkan jenis hujah.
Walaupun kaedah terlebih beban boleh melakukan aktiviti yang berbeza, ia mesti berkaitan untuk mengekalkan kejelasan dan kepaduan.
Elakkan menggunakan nama kaedah terlebih beban untuk operasi yang tidak berkaitan kerana ini mungkin mengelirukan maksud kod.
Atas ialah kandungan terperinci Kaedah Overloading. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!