Kaedah terlebih beban

Topik baru dan menarik kami untuk hari ini ialah kaedah terlebih muatan . Berhati-hati — kaedah terlebih beban tidak boleh dikelirukan dengan kaedah mengatasi.

Tidak seperti overriding, overloading adalah operasi yang sangat mudah. Ia sebenarnya bukan operasi pada kaedah, walaupun kadangkala ia dirujuk oleh istilah yang mengerikan polimorfisme parametrik .

Isunya di sini ialah semua kaedah dalam kelas mesti mempunyai nama unik. Nah, itu tidak sepenuhnya tepat. Nah, lebih tepat, itu tidak tepat sama sekali. Nama kaedah tidak semestinya unik. Apa yang mesti unik ialah penyatuan nama kaedah dan jenis parameter kaedah. Kesatuan ini dikenali sebagai tandatangan kaedah

Contoh:

Kod Penerangan
public void print();
public void print2();
Ini dibenarkan. Kedua-dua kaedah mempunyai nama yang unik.
public void print();
public void print(int n);
Dan juga ini. Kedua-dua kaedah mempunyai nama unik (tandatangan).
public void print(int n, int n2);
public void print(int n);
Kaedahnya masih unik
public int print(int a);
public void print(int n);
Tetapi ini tidak dibenarkan . Kaedahnya tidak unik . Walaupun mereka mengembalikan jenis yang berbeza.
public int print(int a, long b);
public long print(long b, int a);
Tetapi anda boleh melakukan ini . Parameter kaedah adalah unik

Tandatangan termasuk nama kaedah dan jenis parameter . Ia tidak termasuk jenis pulangan kaedah dan nama parameter . Kelas tidak boleh mempunyai dua kaedah dengan tandatangan yang sama — pengkompil tidak akan tahu yang mana satu untuk dipanggil.

Nama parameter tidak penting , kerana ia hilang semasa penyusunan. Setelah kaedah disusun, hanya nama dan jenis parameternya diketahui. Jenis pulangan tidak hilang, tetapi hasil kaedah tidak perlu diberikan kepada apa-apa, jadi ia juga tidak termasuk dalam tandatangan.

Menurut prinsip OOP , polimorfisme menyembunyikan pelaksanaan yang berbeza di sebalik antara muka tunggal. Apabila kita memanggil System.out.println()kaedah, sebagai contoh, kaedah yang berbeza dipanggil bergantung pada hujah yang diluluskan. Ini adalah polimorfisme dalam tindakan.

Itulah sebabnya kaedah berbeza dengan nama yang sama yang terkandung dalam kelas yang sama dianggap sebagai bentuk polimorfisme yang lemah.