Pagkakaiba sa Pagitan ng Overriding at Overloading

Pagkakaiba sa Pagitan ng Overriding at Overloading
Pagkakaiba sa Pagitan ng Overriding at Overloading

Video: Pagkakaiba sa Pagitan ng Overriding at Overloading

Video: Pagkakaiba sa Pagitan ng Overriding at Overloading
Video: EPP 5 (Entrepreneurship): Kahulugan at Pagkakaiba ng Produkto at Serbisyo 2024, Disyembre
Anonim

Overriding vs Overloading

Ang paraan ng Overriding at paraan ng Overloading ay dalawang konsepto/teknik/feature na makikita sa ilang programming language. Ang parehong mga konsepto ay nagpapahintulot sa programmer na magbigay ng iba't ibang mga pagpapatupad para sa mga pamamaraan na may parehong pangalan. Ang pag-override ng pamamaraan ay nagbibigay-daan sa programmer na magbigay ng alternatibong pagpapatupad sa loob ng isang sub class sa isang paraan na tinukoy na sa loob ng super class nito. Ang overloading ng pamamaraan ay nagbibigay-daan sa programmer na magbigay ng iba't ibang pagpapatupad sa maraming pamamaraan na may parehong pangalan (sa loob ng parehong klase).

Ano ang Overriding?

Tulad ng nabanggit sa itaas, ang isang klase ay maaaring mag-extend ng isang super class o isang parent na klase, sa object oriented programming language. Ang isang child class ay maaaring magkaroon ng sarili nitong mga pamamaraan o maaaring opsyonal na magkaroon ng sarili nitong mga pagpapatupad sa mga pamamaraan na tinukoy na sa parent class nito (o isa sa mga grand parent na klase nito). Kaya kapag nangyari ang huli, tinatawag itong method overriding. Sa madaling salita, kung ang klase ng bata ay nagbibigay ng pagpapatupad sa isang pamamaraan na may parehong lagda at uri ng pagbabalik bilang isang pamamaraan na tinukoy na sa isa sa mga pangunahing klase nito, ang pamamaraang iyon ay sinasabing ma-override (pinapalitan) ng pagpapatupad ng klase ng bata.. Kaya, kung mayroong isang overridden na pamamaraan sa isang klase, ang runtime system ay kailangang magpasya kung aling paraan ang pagpapatupad ng ginagamit. Ang isyung ito ay nareresolba sa pamamagitan ng pagtingin sa eksaktong uri ng bagay na ginagamit para i-invoke ito. Kung ang isang bagay ng parent na klase ay ginagamit upang i-invoke ang overridden na paraan, ang pagpapatupad sa parent na klase ay gagamitin. Katulad nito, kung ito ay isang object ng child class na ginagamit, ang pagpapatupad ng child class ay gagamitin. Ang mga modernong programming language tulad ng Java, Eifell, C++ at Python ay nagbibigay-daan sa pag-overriding ng pamamaraan.

Ano ang Overloading?

Ang Method overloading ay isang feature na ibinigay ng ilang programming language para gumawa ng higit sa isang paraan na may parehong pangalan, ngunit may iba't ibang uri ng input at output. Sa modernong mga programming language tulad ng Java, C, C++ at VB. NET, available ang feature na ito. Maaari kang mag-overload ng isang paraan sa pamamagitan ng paglikha ng isa pang pamamaraan na may parehong pangalan ngunit may ibang lagda ng pamamaraan o ibang uri ng pagbabalik (o pareho). Halimbawa, kung mayroon kang method1(type1 t1) at method1(type2t2) sa loob ng parehong klase, overloaded sila. Pagkatapos ang system ay kailangang magpasya kung alin ang isasagawa kapag ito ay tinawag. Ginagawa ang pagkakaiba-iba na ito sa pamamagitan ng pagtingin sa uri ng (mga) parameter na naipasa sa pamamaraan. Kung type1 ang argumento, tatawagin ang unang pagpapatupad, habang type2 naman, tatawagin ang pangalawang pagpapatupad.

Ano ang pagkakaiba ng Overriding at Overloading?

Bagaman, ginagamit ang overriding ng paraan at overloading ng pamamaraan para magbigay ng paraan na may magkakaibang pagpapatupad, may mga pangunahing pagkakaiba sa pagitan ng dalawang konsepto/teknikong ito. Una sa lahat, ang mga paksa ng overriding ng pamamaraan ay palaging nananatili sa loob ng iba't ibang klase, habang ang mga paksa ng overloading ng pamamaraan ay nananatili sa parehong klase. Nangangahulugan iyon na ang pag-override ay posible lamang sa mga object oriented na programming language na nagbibigay-daan sa mana, habang ang overloading ay magagamit din sa isang hindi object-oriented na wika. Sa madaling salita, na-override mo ang isang paraan sa super class ngunit na-overload mo ang isang paraan sa loob ng sarili mong klase.

Ang isa pang pagkakaiba ay ang mga na-override na pamamaraan ay may parehong pangalan ng pamamaraan, lagda ng pamamaraan at uri ng pagbabalik, ngunit ang mga overload na pamamaraan ay dapat magkaiba sa alinman sa lagda o uri ng pagbabalik (dapat pareho ang pangalan). Upang maiba ang pagkakaiba sa pagitan ng dalawang na-override na pamamaraan, ang eksaktong uri ng bagay na ginagamit upang i-invoke ang mga method na ginamit na id, samantalang para pag-iba-iba sa pagitan ng dalawang overloaded na pamamaraan ang mga uri ng mga parameter ay ginagamit. Ang isa pang pangunahing pagkakaiba ay ang overloading ay nareresolba sa oras ng pag-compile, habang ang overriding ay naresolba sa runtime.

Inirerekumendang: