Mahalagang Pagkakaiba – Overriding vs Overloading sa C
Ang pangunahing pagkakaiba sa pagitan ng overriding at overloading sa C ay ang pag-binding ng overridden na method call sa kahulugan nito ay nangyayari sa runtime habang ang pag-binding ng overloaded na method call sa kahulugan nito ay nangyayari sa compile time.
Ang C ay isang pangkalahatang layunin na programming language na binuo ng Microsoft. Ang pangunahing bentahe ng C ay sinusuportahan nito ang Object Oriented Programming (OOP). Ang isang haligi ng OOP ay Polymorphism. Nagbibigay ito ng isang bagay na magkaroon ng maraming pag-uugali. Mayroong dalawang uri sa Polymorphism na kilala bilang overriding at overloading. Tinatalakay ng artikulong ito ang pagkakaiba sa pagitan ng overriding ng pamamaraan at overloading sa C.
Ano ang Overriding sa C?
May isa pang mahalagang konsepto sa OOP ay pamana. Ito ay ang paggamit ng mga katangian at pamamaraan ng umiiral nang klase. Pinapabuti nito ang muling paggamit ng code. Ang dati nang klase ay ang batayang klase, at ang bagong klase ay kilala bilang nagmula na klase. Sa pag-override ng polymorphism, dapat mayroong isang base class at isang derived na klase. Ang pagbubuklod ng overridden na paraan ng tawag sa kahulugan ay nangyayari sa runtime. Ang isang halimbawa ay ang sumusunod.
Figure 01: C Program with Overriding
Ayon sa programa sa itaas, ang Class Shape ay ang batayang klase, at naglalaman ito ng paraan ng pagpapakita. Ang Class Rectangle at Triangle ay nagmula sa mga klase. Ang mga hinangong klase na ito ay mayroon ding parehong paraan ng pagpapakita sa sarili nilang mga pagpapatupad.
Una, ginawa ang reference variable obj. Itinuro nito ang bagay na Hugis. Kaya, ang paraan ng pagpapakita ng klase ng Shape ay isasagawa. Pagkatapos, tumuturo ang reference variable sa Rectangle object. Kaya, ipapatupad ang paraan ng pagpapakita ng Rectangle class. Sa wakas, ang reference variable ay tumuturo sa Triangle object. Kaya, ang paraan ng pagpapakita ng klase ng Triangle ay isasagawa. Ang paraan ng pagpapakita ng batayang klase ay na-override ng mga paraan ng pagpapakita ng mga hinangong klase.
Ang paraan para tumakbo ay napagpasyahan sa runtime. Ang klase ng Hugis ay nakasulat gamit ang 'virtual' na keyword. Ang mga klase ng Rectangle at Triangle ay isinulat gamit ang 'override' na keyword. Kung hindi gagamitin ang mga keyword na ito, ipi-print ng output ang nilalaman ng paraan ng pagpapakita ng klase ng Shape para sa lahat.
Ano ang Overloading sa C?
Sa overloading, maraming pamamaraan ang may parehong pangalan ngunit may magkakaibang mga parameter. Ang mga parameter ay maaaring may iba't ibang uri. Ang mga pamamaraan ay maaari ding magkaroon ng ibang bilang ng mga parameter. Ang paraan ng overloading ay nangyayari sa parehong klase. Ang pagbubuklod ng mga overloaded na pamamaraan sa kahulugan ay nangyayari sa oras ng pag-compile. Sumangguni sa C program sa ibaba.
Figure 02: C Program with Overloading
Ayon sa programa sa itaas, ang class A ay may dalawang pamamaraan na may parehong pangalan na tinatawag na sum. Mayroon silang iba't ibang uri ng mga parameter. Sa pangunahing programa, isang bagay ng A ay nilikha. Ang sum (2, 3) ay mag-invoke ng sum method na may mga integer. Ang kabuuan (5.1, 7.94) ay magpapatawag ng paraan ng kabuuan na may mga dobleng halaga. Ang parehong mga pamamaraan ay may parehong pangalan at isang parehong bilang ng mga parameter. Ngunit ang mga uri ng parameter ay iba. Ang kinakailangang pamamaraan ay tinatawag nang naaayon. Ang overloading ay maaari ding mangyari kung ang mga pangalan ng pamamaraan at mga uri ng parameter ay pareho ngunit ang bilang ng mga parameter ay iba.
Ano ang Pagkakatulad sa pagitan ng Overriding at Overloading sa C?
Parehong Overriding at Overloading sa C ay mga uri ng polymorphism
Ano ang Pagkakaiba sa pagitan ng Overriding at Overloading sa C?
Overriding vs Overloading sa C |
|
Ang pag-override sa C ay ang pagbibigay ng partikular na pagpapatupad sa isang nagmula na paraan ng klase para sa isang pamamaraan na mayroon na sa batayang klase. | Ang overloading sa C ay ang paggawa ng maraming pamamaraan na may parehong pangalan na may magkakaibang pagpapatupad. |
Parameter | |
Sa C Overriding, ang mga pamamaraan ay may parehong pangalan, parehong uri ng parameter at parehong bilang ng mga parameter. | Sa C Overloading, ang mga pamamaraan ay may parehong pangalan ngunit ibang bilang ng mga parameter o ibang uri ng mga parameter. |
Pangyayari | |
Sa C, nangyayari ang overriding sa loob ng base class at sa derived na klase. | Sa C, nangyayari ang overloading sa loob ng parehong klase. |
Binding Time | |
Ang pag-binding ng overridden na method na tawag sa kahulugan nito ay nangyayari sa runtime. | Ang pag-binding ng overloaded na paraan ng tawag sa kahulugan nito ay nangyayari sa oras ng pag-compile. |
Synonyms | |
Ang overriding ay tinatawag bilang runtime polymorphism, dynamic polymorphism o late binding. | Ang overloading ay tinatawag bilang compile time polymorphism, static polymorphism o early binding. |
Buod – Overriding vs Overloading sa C
Ang Overriding at Overloading ay dalawang uri ng polymorphism. Ang pagkakaiba sa pagitan ng overriding at overloading sa C ay ang pag-binding ng overridden na method call sa kahulugan nito ay nangyayari sa runtime habang ang pag-binding ng overloaded na method call sa definition nito ay nangyayari sa compile time.