Rumah >Java >javaTutorial >Apakah Polimorfisme?
Polymorphism ialah konsep dengan bantuan tindakan tunggal dalam cara yang berbeza boleh dilakukan. Ia berasal daripada dua perkataan Yunani: poly dan morphs. "poli" bermaksud banyak, dan "morphs" bermaksud bentuk. Selepas itu, polimorfisme membayangkan banyak bentuk. Pengaturcaraan berorientasikan objek boleh ditakrifkan sebagai keupayaan bahasa pengaturcaraan untuk memproses objek secara berbeza bergantung pada kelas atau jenis datanya. Pada asasnya, kita boleh mentakrifkannya sebagai keupayaan untuk kelas terbitan untuk mentakrifkan semula kaedah.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Dua jenis polimorfisme ialah polimorfisme masa kompilasi dan polimorfisme masa larian. Polimorfisme masa kompilasi dilakukan dengan lebihan kaedah dan polimorfisme masa jalan dengan mengatasi kaedah. Polimorfisme masa jalan, juga dipanggil Dispatch Kaedah Dinamik, ialah satu proses di mana panggilan kepada kaedah yang ditindih diselesaikan pada masa jalan walaupun masa penyusunan. Di sini, kaedah yang diganti dipanggil melalui pembolehubah rujukan kelas induk. Selain itu, polimorfisme masa jalan tidak boleh dicapai oleh ahli data.
Ia adalah ciri pengaturcaraan berorientasikan objek. Menggunakan Polimorfisme, kelas boleh mempamerkan fungsi yang berbeza walaupun ia mempunyai antara muka yang sama. Oleh itu, kita boleh mengatakan bahawa jangka panjang ini menerangkan konsep asas. Perkara yang perlu diberi perhatian tentang polimorfisme ialah semua kod kerja dalam pelbagai kelas tidak memerlukan mengetahui tentang kelas yang digunakan olehnya kerana cara penggunaannya adalah sama.
Ia adalah ciri pengaturcaraan berorientasikan objek. Menggunakan Polimorfisme, kelas boleh mempamerkan fungsi yang berbeza walaupun ia mempunyai antara muka yang sama. Oleh itu, kita boleh mengatakan bahawa jangka panjang ini menerangkan konsep yang sangat asas. Perkara yang perlu diberi perhatian mengenainya ialah semua kod kerja dalam pelbagai kelas tidak perlu mengetahui tentang kelas yang digunakan olehnya kerana cara penggunaannya adalah sama.
Pertimbangkan senario dunia sebenar untuk polimorfisme. Ambil contoh butang. Kami tahu bahawa kami boleh mengklik butang dengan menggunakan sedikit tekanan, tetapi kami tidak tahu output menekan butang atau rujukan penggunaannya. Perkara yang perlu diperhatikan di sini ialah hasilnya tidak akan menjejaskan cara ia digunakan sama ada cara.
Jadi matlamat asasnya ialah untuk membuat objek yang boleh ditukar ganti bergantung pada keperluan.
Apabila kelas kanak-kanak mempunyai kaedah yang sama seperti yang diisytiharkan dalam kelas induk, kami memanggilnya sebagai kaedah mengatasi.
Atau dengan kata lain, jika kelas anak menyediakan pelaksanaan kaedah yang telah diisytiharkan oleh kelas induknya, ia dipanggil kaedah mengatasi. Perkara-perkara tertentu yang perlu diingat dalam mengatasi kaedah ialah:
Apabila kelas mempunyai berbilang kaedah yang mempunyai nama yang sama tetapi parameter berbeza, ia dirujuk sebagai Kaedah Lebih Muatan.
Andaikan kita perlu melakukan hanya satu operasi, kemudian mempunyai nama yang sama dengan kaedah akan meningkatkan kebolehbacaan atur cara. Cara untuk membebankan kaedah dalam Java ialah:
Walau bagaimanapun, di Jawa, tidak mungkin jika kita menukar jenis pemulangan kaedah sahaja.
Selain daripada polimorfisme dinamik dan polimorfisme statik, beberapa ciri pengaturcaraan Java mempamerkan polimorfisme selain daripada dua jenis utama.
Ini ialah – Paksaan, Parameter Polimorfik dan Lebih Muatan Operator
Mari kita fahami paksaan dengan contoh yang sangat mudah. Pertimbangkan rentetan dengan nilai "kelas paksaan:". Pertimbangkan integer lain dengan nilai 1. Sekarang, apakah yang berlaku apabila anda menggabungkan nilai rentetan dengan nilai integer? Output penggabungan ini ialah "kelas paksaan: 1". Inilah yang dinamakan Paksaan. Penukaran jenis tersirat dilakukan untuk mengelakkan ralat jenis. Pengkompil melakukannya.
Sebelum bermula dengan lebih muatan pengendali, juga dikenali sebagai lebihan beban kaedah, mari kita lihat contoh. Pertimbangkan rentetan dengan nilai "Operator" dan rentetan lain sebagai "Lebih Muatan". Gunakan simbol tambah (+) dengan dua rentetan ini sama seperti anda menambah dua integer. (+) akan menggabungkan kedua-dua rentetan ini. Dalam kes dua integer, jumlah dua integer dikembalikan. Apabila satu simbol atau operator mempunyai keupayaan untuk menukar maknanya bergantung pada cara ia digunakan, jenis polimorfisme yang dipamerkan dipanggil Operator Overloading.
Dalam Polimorfisme, objek mungkin muncul dalam pelbagai bentuk. Di Java, ia merujuk kepada membenarkan akses kepada objek dalam salah satu daripada cara berikut seperti –
1. menggunakan pembolehubah rujukan kelas induknya atau kelas super
2. menggunakan pembolehubah rujukan kelas di mana ia wujud.
Sebab utama mengapa Polimorfisme diperlukan ialah konsep ini digunakan secara meluas dalam melaksanakan pewarisan. Ia memainkan peranan penting dalam membenarkan objek mempunyai struktur dalaman yang berbeza-beza dalam berkongsi antara muka luaran yang sama. Ia dinyatakan dengan jelas sebagai satu yang dipetakan untuk ramai.
Pengikatan ialah menyambungkan panggilan kaedah ke badan kaedah. Kami mempunyai dua jenis pengikatan.
Pengikatan Statik (Pengikatan Awal): Apabila jenis objek ditentukan pada masa penyusunan.
Pengikatan Dinamik (Pengikatan Lewat): Apabila jenis objek ditentukan pada masa larian.
Ia dianggap sebagai salah satu ciri yang sangat penting dalam Pengaturcaraan Berorientasikan Objek. Jika anda bercakap tentang contoh kehidupan sebenar polimorfisme, ia boleh jadi seseorang pada masa yang sama boleh mempunyai ciri yang berbeza; sebagai contoh, seorang lelaki pada masa yang sama adalah anak lelaki, suami, pekerja. Jadi orang yang sama memperoleh tingkah laku yang berbeza dalam situasi yang berbeza. Ini, dalam istilah berorientasikan objek, dipanggil polimorfisme, ciri penting pengaturcaraan berorientasikan objek.
Atas ialah kandungan terperinci Apakah Polimorfisme?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!