Polymorphism: A Multi-faceted Approach
Di alam Jawa, menghadapi pertanyaan mengenai polimorfisme selalunya boleh membawa kepada perbincangan mengenai kedua-dua overriding dan terlebih muatan. Walau bagaimanapun, konsep ini melangkaui dua ciri yang berbeza ini.
Menentukan Overriding dan Overloading
Lebih muat merujuk kepada situasi di mana berbilang kaedah dalam kelas yang sama mempunyai nama yang sama tetapi berbeza dalam parameter. Sebaliknya, mengatasi melibatkan subkelas yang mentakrifkan semula kaedah yang diwarisi daripada kelas supernya menggunakan nama, tandatangan dan jenis pulangan yang sama.
Polymorphism: Perspektif Yang Lebih Luas
Polimorfisme, merangkumi kedua-dua overriding dan overloading, berkisar pada keupayaan objek dari kelas yang berbeza (berasal daripada superclass atau antara muka biasa) untuk berkongsi kaedah dengan nama yang sama tetapi pelaksanaan berbeza.
Kelas Asas Abstrak dan Definisi Kaedah
Pertimbangkan contoh kelas asas abstrak "Manusia" mentakrifkan kaedah abstrak "goPee()". Kaedah ini tidak boleh dilaksanakan oleh "Manusia" itu sendiri, sebaliknya oleh subkelasnya. Mentakrifkan "goPee()" dalam subkelas "Lelaki" dan "Perempuan" merupakan mengatasi, bukan membebankan.
Melaksanakan Polimorfisme
Melalui kelas asas abstrak, ia menjadi mungkin untuk melaksanakan polimorfisme dengan membiarkan objek subkelas (cth., "Lelaki" dan "Perempuan") bertindak balas secara berbeza kepada penyeruan kaedah yang sama (cth., "goPee()"). Ini membenarkan pengikatan dinamik, di mana pelaksanaan khusus dipilih berdasarkan kelas sebenar objek dan bukannya jenis yang diisytiharkan.
Contoh: Tingkah Laku Kencing Manusia
Kod yang disediakan menggambarkan cara melaksanakan kaedah "goPee()" polimorfik melalui kelas abstrak dan subkelas. Senarai tatasusunan objek "Manusia" boleh diarahkan kepada "goPee()". Lelaki dan perempuan akan mempamerkan gelagat yang berbeza disebabkan oleh pelaksanaan yang ditindih dalam subkelas masing-masing.
Pada dasarnya, polimorfisme ialah mekanisme berkuasa yang membolehkan objek menggunakan kaedah yang berkelakuan berbeza bergantung pada kelas sebenar objek, memupuk fleksibiliti kod dan kebolehgunaan semula.
Atas ialah kandungan terperinci Apakah Polimorfisme dalam Java, dan Bagaimanakah Ia Berbeza daripada Mengatasi dan Melebihkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!