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 |
---|---|
|
Ini dibenarkan. Kedua-dua kaedah mempunyai nama yang unik. |
|
Dan juga ini. Kedua-dua kaedah mempunyai nama unik (tandatangan). |
|
Kaedahnya masih unik |
|
Tetapi ini tidak dibenarkan . Kaedahnya tidak unik . Walaupun mereka mengembalikan jenis yang berbeza. |
|
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.
GO TO FULL VERSION