Tofauti Muhimu – Kupakia kupita kiasi dhidi ya Kubatilisha katika Java
Upangaji Unaolenga Kipengele (OOP) ni dhana kuu katika uundaji wa programu. Ni mbinu ya kubuni programu kwa kutumia madarasa na vitu. Darasa ni mchoro. Inaelezea kile kinachopaswa kuwa katika kitu. Inafafanua mali au sifa na njia ambazo kitu kinapaswa kujumuisha. Kwa hivyo, kitu ni mfano wa darasa. Vitu hivi huwasiliana na vitu vingine. Dhana moja kuu ya OOP ni Polymorphism. Ni uwezo wa kitu kutenda kwa njia nyingi. Polymorphism imegawanywa katika sehemu mbili ambazo ni za upakiaji kupita kiasi na kuu. Nakala hii inajadili tofauti kati ya hizi mbili katika Java. Tofauti kuu kati ya kupakia kupita kiasi na kubatilisha katika Java ni kwamba Kupakia kupita kiasi ni uwezo wa kuunda mbinu nyingi za jina moja na utekelezaji tofauti na Kupitisha ni kutoa utekelezaji wa mbinu ya darasa ndogo ambayo tayari ipo katika darasa kuu.
Kupakia kupita kiasi ni nini katika Java?
Kupakia kupita kiasi ni uwezo wa kuunda mbinu nyingi za jina moja kwa utekelezaji tofauti. Rejelea msimbo wa Java ulio hapa chini.
Kielelezo 01: Mpango wa Java unaofafanua Kupakia kwa idadi tofauti ya hoja
Kulingana na mpango ulio hapo juu, darasa A lina mbinu mbili zenye jina moja. Njia ya kwanza ya jumla ina vigezo viwili. Njia ya pili ya jumla ina vigezo vitatu. Wakati wa kuunda kitu cha aina A na kupiga simu sum(2, 3), itaita njia ya jumla na vigezo viwili ambavyo ni sum(int a, int b) na kurejesha 5. Wakati wa kuunda kitu cha aina A na wito sum(2), 3, 4), itaita njia nyingine ya jumla iliyo na vigezo vitatu ambavyo ni jumla (int a, int b, int c) na kurejesha 9.
Jina la mbinu ni sawa lakini idadi ya vigezo ni tofauti. Inaweza kuzingatiwa kuwa kitu kimoja kinatenda tofauti. Dhana hii inajulikana kama upakiaji kupita kiasi. Pia inajulikana kama Kuunganisha Tuli au Kukusanya Upolimishaji wa Wakati.
Kunaweza pia kupakiwa na aina tofauti za data. Rejelea msimbo wa Java ulio hapa chini.
Kielelezo 02: Programu ya Java inayoelezea Kupakia kupita kiasi kwa idadi tofauti ya hoja
Kulingana na mpango ulio hapo juu, daraja A lina mbinu mbili zenye jina moja. Njia ya jumla (int a, int b) inapokea nambari mbili kamili. Jumla (mara mbili b) hupokea maadili mawili mara mbili. Wakati wa kuunda kitu cha aina A na wito jumla (2, 3), itaita sum(int a, int b) na kurudisha thamani 5. Wakati wa kupiga jumla (3.4, 5.6), itaita sum(double a double b) na kurudisha thamani 9.0. Katika mfano huu, njia zina jina sawa, lakini aina tofauti za vigezo. Hii pia inapakia kupita kiasi.
Ni nini kinachobatilisha katika Java?
Katika Java, inawezekana kuunda madarasa madogo na madarasa yaliyopo tayari. Badala ya kuunda darasa jipya tangu mwanzo, inawezekana kutumia mali na mbinu za darasa tayari zilizopo. Darasa lililopo ni darasa kuu, na darasa linalotokana ni darasa ndogo. Wakati subclass inapeana utekelezaji wa njia, ambayo tayari iko kwenye darasa kuu, inajulikana kama kupitisha. Rejelea programu ya Java iliyo hapa chini.
Kielelezo 03: Mpango wa Java wa kubatilisha
Kulingana na mpango ulio hapo juu, Daraja A lina onyesho la mbinu(). Darasa B linaenea kutoka kwa darasa A, kwa hivyo mali na njia za darasa A zinapatikana kwa darasa B. Darasa B lina njia display() yenye utekelezaji maalum. Wakati wa kuunda kitu cha aina, A na kuita njia ya kuonyesha, itatoa pato B. Ingawa darasa A lina njia ya kuonyesha, imebatilishwa kuwa njia ya kuonyesha ya darasa B. Subclass inatekeleza mbinu ambayo tayari ipo katika darasa kuu.
Dhana hii ni aina ya upolimishaji na inayojulikana kama ubadhirifu. Pia inaitwa Kufunga Kwa Marehemu, Kuunganisha kwa Nguvu, Polymorphism ya Wakati wa Runtime.
Je, Kuna Ufanano Gani Kati ya Kupakia Zaidi na Kubatilisha katika Java?
- Zote ni aina za Polymorphism.
- Katika kupakia na kubatilisha, mbinu zina jina sawa.
Kuna tofauti gani kati ya Kupakia kupita kiasi na kubatilisha katika Java?
Kupakia kupita kiasi dhidi ya Kubatilisha katika Java |
|
Kupakia kupita kiasi katika Java ni uwezo wa kuunda mbinu nyingi za jina moja kwa utekelezaji tofauti. | Kubatilisha katika Java ni kutoa utekelezaji mahususi katika mbinu ya darasa ndogo kwa mbinu ambayo tayari ipo katika darasa kuu. |
Vigezo | |
Katika upakiaji kupita kiasi, mbinu zina jina sawa lakini idadi tofauti ya vigezo au aina tofauti ya vigezo. | Katika kubatilisha, mbinu zina jina sawa na vigezo lazima vifanane. |
Mandhari | |
Upakiaji kupita kiasi hutokea ndani ya darasa. | Ubatilishaji hutokea ndani ya tabaka mbili zilizo na uhusiano wa urithi. |
Visawe | |
Kupakia kupita kiasi kunaitwa compiled time polymorphism. | Kupindua kunaitwa upolimishaji wa wakati wa kukimbia. |
Muhtasari - Kupakia kupita kiasi dhidi ya Kubatilisha katika Java
Polimorphism ni dhana kuu katika Upangaji Wenye Malengo ya Kipengee. Inatoa uwezo wa kitu kutenda kwa njia nyingi. Hii inaweza kuwa ya kuzidisha au kuzidisha. Kupakia kupita kiasi ni upolimishaji wa wakati wa mkusanyo, na kuu ni upolimishaji wa wakati wa utekelezaji. Wao ni muhimu katika maendeleo ya programu ya programu. Tofauti kati ya kuzidisha na kupakia kupita kiasi ni kwamba Kupakia kupita kiasi ni uwezo wa kuunda mbinu nyingi za jina moja na utekelezaji tofauti na Kupindua ni kutoa utekelezaji mahususi katika njia ndogo kwa njia ambayo tayari ipo kwenye darasa kuu. Inawezekana kutekeleza upakiaji na kubatilisha katika Java.
Pakua Upakiaji Zaidi wa PDF dhidi ya Kubatilisha katika Java
Unaweza kupakua toleo la PDF la makala haya na uitumie kwa madhumuni ya nje ya mtandao kulingana na dokezo la manukuu. Tafadhali pakua toleo la PDF hapa Tofauti Kati ya Kupakia na Kupindua katika Java