Mahalagang Pagkakaiba – Overloading vs Overriding sa Java
Ang Object-Oriented Programming (OOP) ay isang pangunahing paradigm sa pagbuo ng software. Ito ay isang pamamaraan upang magdisenyo ng isang programa gamit ang mga klase at bagay. Ang isang klase ay isang blueprint. Inilalarawan nito kung ano ang dapat taglayin sa bagay. Tinutukoy nito ang mga katangian o katangian at ang mga pamamaraan na dapat binubuo ng bagay. Samakatuwid, ang isang bagay ay isang halimbawa ng isang klase. Ang mga bagay na ito ay nakikipag-ugnayan sa iba pang mga bagay. Ang isang pangunahing konsepto ng OOP ay Polymorphism. Ito ay ang kakayahan para sa isang bagay na kumilos sa maraming paraan. Ang polymorphism ay ikinategorya sa dalawang seksyon na overloading at overriding. Tinatalakay ng artikulong ito ang pagkakaiba ng dalawang ito sa Java. Ang pangunahing pagkakaiba sa pagitan ng overloading at overriding sa Java ay ang Overloading ay ang kakayahang gumawa ng maraming pamamaraan ng parehong pangalan na may iba't ibang pagpapatupad at Overriding ay ang pagbibigay ng pagpapatupad para sa isang subclass na pamamaraan na mayroon na sa superclass.
Ano ang Overloading sa Java?
Ang Overloading ay ang kakayahang gumawa ng maraming paraan ng parehong pangalan na may iba't ibang pagpapatupad. Sumangguni sa Java code sa ibaba.
Figure 01: Java program na nagpapaliwanag ng Overloading na may iba't ibang bilang ng mga argumento
Ayon sa programa sa itaas, ang klase A ay naglalaman ng dalawang pamamaraan na may parehong pangalan. Ang unang paraan ng kabuuan ay may dalawang parameter. Ang pangalawang paraan ng kabuuan ay may tatlong mga parameter. Kapag lumilikha ng isang object ng uri A at tumatawag ng sum(2, 3), tatawag ito ng sum method na may dalawang parameter na sum(int a, int b) at nagbabalik ng 5. Kapag lumilikha ng object ng type A at tumatawag ng sum(2, 3, 4), tatawagin nito ang iba pang paraan ng kabuuan na may tatlong parameter na siyang sum(int a, int b, int c) at nagbabalik ng 9.
Ang pangalan ng pamamaraan ay pareho ngunit ang bilang ng mga parameter ay iba. Mapapansing iba ang kilos ng parehong bagay. Ang konseptong ito ay kilala bilang overloading. Tinutukoy din ito bilang Static Binding o Compiles Time Polymorphism.
Maaari ding ma-overload ang iba't ibang uri ng data. Sumangguni sa Java code sa ibaba.
Figure 02: Java program na nagpapaliwanag ng Overloading na may iba't ibang bilang ng mga argumento
Ayon sa programa sa itaas, ang klase A ay binubuo ng dalawang pamamaraan na may parehong pangalan. Ang sum(int a, int b) na paraan ay tumatanggap ng dalawang integer na halaga. Ang kabuuan(double a double b) ay tumatanggap ng dalawang dobleng halaga. Kapag gumagawa ng object ng uri A at tumatawag ng sum(2, 3), tatawag ito ng sum(int a, int b) at ibabalik ang value na 5. Kapag tumatawag ng sum(3.4, 5.6), tatawag ito ng sum(double a double b) at ibalik ang halaga 9.0. Sa halimbawang ito, ang mga pamamaraan ay may parehong pangalan, ngunit ibang uri ng mga variable. Overloading din ito.
Ano ang Overriding sa Java?
Sa Java, posibleng bumuo ng mga subclass na mayroon nang mga klase. Sa halip na lumikha ng bagong klase mula sa simula, posibleng gamitin ang mga katangian at pamamaraan ng umiiral nang klase. Ang kasalukuyang klase ay ang superclass, at ang nagmula na klase ay ang subclass. Kapag ang subclass ay nagbibigay ng pagpapatupad para sa isang pamamaraan, na nasa superclass na, ito ay kilala bilang overriding. Sumangguni sa Java program sa ibaba.
Figure 03: Java program para sa overriding
Ayon sa programa sa itaas, ang Class A ay nagkakaroon ng method display(). Ang Class B ay lumalawak mula sa klase A, kaya ang mga katangian at pamamaraan ng klase A ay naa-access ng klase B. Ang Class B ay may method display() na may partikular na pagpapatupad. Kapag lumilikha ng isang object ng uri, A at pagtawag sa paraan ng pagpapakita, ito ay magbibigay ng output B. Kahit na ang klase A ay may isang paraan ng pagpapakita, ito ay na-override na maging class B na paraan ng pagpapakita. Ang subclass ay nagpapatupad ng isang paraan na mayroon na sa superclass.
Ang konseptong ito ay isang uri ng polymorphism at kilala bilang overriding. Tinatawag din itong Late Binding, Dynamic Binding, Runtime Polymorphism.
Ano ang Mga Pagkakatulad sa pagitan ng Overloading at Overriding sa Java?
- Parehong mga uri ng Polymorphism.
- Sa overloading at overriding, ang mga pamamaraan ay may parehong pangalan.
Ano ang Pagkakaiba sa pagitan ng Overloading at Overriding sa Java?
Overloading vs Overriding sa Java |
|
Ang overloading sa Java ay ang kakayahang gumawa ng maraming paraan ng parehong pangalan na may magkakaibang pagpapatupad. | Ang pag-override sa Java ay nagbibigay ng partikular na pagpapatupad sa subclass na pamamaraan para sa isang paraan na mayroon na sa superclass. |
Parameter | |
Sa overloading, ang mga pamamaraan ay may parehong pangalan ngunit ibang bilang ng mga parameter o ibang uri ng mga parameter. | Sa pag-override, ang mga pamamaraan ay may parehong pangalan at dapat na pareho ang mga parameter. |
Mga Tema | |
Nangyayari ang overloading sa loob ng klase. | Nangyayari ang overriding sa loob ng dalawang klase na may kaugnayang mana. |
Mga kasingkahulugan | |
Ang overloading ay tinatawag na compiled time polymorphism. | Ang overriding ay tinatawag na run time polymorphism. |
Buod – Overloading vs Overriding sa Java
Ang Polymorphism ay isang pangunahing konsepto sa Object Oriented Programming. Nagbibigay ito ng kakayahan para sa isang bagay na kumilos sa maraming paraan. Maaari itong maging overloading o overriding. Ang overloading ay ang compile-time polymorphism, at ang overriding ay ang runtime polymorphism. Ang mga ito ay kapaki-pakinabang sa pagbuo ng software application. Ang pagkakaiba sa pagitan ng overriding at overloading ay ang Overloading ay ang kakayahang lumikha ng maraming pamamaraan ng parehong pangalan na may iba't ibang mga pagpapatupad at ang Overriding ay nagbibigay ng isang partikular na pagpapatupad sa subclass na pamamaraan para sa isang pamamaraan na mayroon na sa superclass. Posibleng ipatupad ang parehong overloading at overriding sa Java.
I-download ang PDF Overloading vs Overriding sa Java
Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa mga offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito Pagkakaiba sa pagitan ng Overloading at Overriding sa Java