Mahalagang Pagkakaiba – Polymorphism vs Inheritance sa OOP
Ang Object-Oriented Programming (OOP) ay karaniwang ginagamit upang bumuo ng software. Maraming mga programming language ang sumusuporta sa object-oriented programming. Ang Object-oriented programming ay isang metodolohiya upang magdisenyo ng isang programa gamit ang mga klase at bagay. Ang isang klase sa OOP ay isang blueprint upang lumikha ng isang bagay. Ang isang klase ay may mga katangian at pamamaraan. Ang isang bagay ay isang halimbawa ng isang klase. Ang OOP ay naglalaman ng apat na haligi tulad ng Inheritance, Polymorphism, Abstraction at Encapsulation. Tinatalakay ng artikulong ito ang pagkakaiba sa pagitan ng Polymorphism at Inheritance sa OOP. Ang pangunahing pagkakaiba sa pagitan ng Polymorphism at Inheritance sa OOP ay ang Polymorphism ay ang kakayahan ng isang bagay na kumilos sa maraming paraan at ang Inheritance ay lumikha ng bagong klase gamit ang mga katangian at pamamaraan ng isang umiiral na klase.
Ano ang Polymorphism sa OOP?
Ang Polymorphism ay upang ipahiwatig ang maraming anyo. Ang isang bagay ay maaaring magkaroon ng maraming pag-uugali. Ang polymorphism ay maaaring nahahati sa dalawang kategorya. Sobra na ang mga ito at overriding.
Sobrang karga
I-refer ang program sa ibaba na nakasulat sa Java.
Figure 01: Overloading
Ayon sa programa sa itaas, isang bagay na may uri A ay nilikha. Kapag tumatawag sa obj.sum(); magbibigay ito ng output na nauugnay sa method sum(). Kapag tumatawag sa obj.sum(2, 3); magbibigay ito ng output na nauugnay sa sum(int a, int b). Mapapansin na ang parehong bagay ay may iba't ibang pag-uugali depende sa sitwasyon. Kapag mayroong maraming mga pamamaraan na may parehong pangalan, ngunit may iba't ibang mga parameter, ito ay kilala bilang overloading. Kilala rin ito bilang static binding o compile time polymorphism.
Overriding
Ang isa pang uri ng Polymorphism ay overriding. Sumangguni sa program sa ibaba na nakasulat sa Java.
Figure 02: Overriding
Ayon sa programa sa itaas, mayroong isang method display() sa class A. Ang Class B ay umaabot mula sa class A. Samakatuwid, ang lahat ng method sa class A ay naa-access ng class B. Ito ay inheritance. Ang konsepto ng mana ay inilalarawan sa ibang pagkakataon.
Ang Class B ay mayroon ding parehong paraan ng display(). Kapag lumilikha ng isang bagay na uri A at tinatawag na paraan ng pagpapakita, ang output ay magbibigay ng B. Ang paraan ng pagpapakita ng Class A ay na-override ng paraan ng pagpapakita ng klase B. Kaya, ang output ay B.
Kapag may mga pamamaraan na may parehong pangalan at parehong mga parameter ngunit nasa dalawang magkaibang klase, at naka-link ang mga ito sa mana, kilala ito bilang overriding. Ito ay kilala rin bilang Late binding, Dynamic Binding, Runtime Polymorphism. Ang overloading at overriding ay tinatawag bilang Polymorphism. Isa itong pangunahing konsepto sa Object Oriented Programming.
Ano ang Inheritance sa OOP?
I-refer ang program sa ibaba na nakasulat sa Java.
Figure 03: Halimbawa ng Mana
Ayon sa programa sa itaas, ang class A ay may method sum() at ang class B ay may method sub().
Ang sum() na paraan ng klase A ay maaaring gamitin sa klase B gamit ang extend na keyword. Ang muling paggamit ng mga katangian at pamamaraan sa isang umiiral na klase upang lumikha ng bagong klase ay kilala bilang Pamana. Kahit na walang sum() na pamamaraan sa klase B; ito ay minana mula sa klase A. Ang inheritance ay kapaki-pakinabang para sa muling paggamit ng code. Ang mas lumang klase ay tinatawag na base class, superclass o parent class. Ang hinangong klase ay tinatawag na subclass o child class.
Mga Uri ng Mana
May iba't ibang uri ng mana. Ang mga ito ay Single-Level Inheritance, Multi-Level Inheritance, Multiple Inheritance, Hierarchical Inheritance at Hybrid Inheritance.
Single Inheritance
Sa Single Inheritance, mayroong isang super class at isang sub class. Kung ang class A ay ang super class at ang class B ay ang sub class, ang lahat ng mga katangian at pamamaraan ng class A ay maa-access ng class B. Mayroon lamang isang antas; samakatuwid, ito ay tinatawag na single-level inheritance.
Multi-Level Inheritance
Sa Multi-Level Inheritance mayroong tatlong antas ng mga klase. Nagmana ang intermediate class mula sa super class. Nagmana ang sub class mula sa intermediate class. Kung may tatlong klase bilang A, B at C at A ang super class at B ang intermediate class. Pagkatapos, ang B ay namamana mula sa A at si C ay namamana mula sa B, ito ay isang Multi-Level Inheritance.
Multiple Inheritance
Sa Multiple Inheritance, maraming super class at isang sub class. Kung mayroong tatlong super class na tinatawag na A, B, C at D ang sub class, ang class D ay maaaring magmana mula sa A, B at C. Multiple Inheritance ay sinusuportahan sa programming language na C++. Hindi ito sinusuportahan sa mga programming language gaya ng Java o C. Ginagamit ang mga interface para sa pagpapatupad ng Multiple Inheritance sa mga wikang ito.
Hierarchical Inheritance
Kung may mga klase na tinatawag na A bilang mga super class at B, ang C ay mga sub class, ang mga sub class na iyon ay maaaring magmana ng mga katangian at pamamaraan ng class A. Ang ganitong uri ng inheritance ay kilala bilang Hierarchical Inheritance.
Hybrid Inheritance
May isa pang espesyal na uri ng mana na kilala bilang Hybrid Inheritance. Ito ay kumbinasyon ng multi-level at multiple inheritance. Kung ang A, B, C at D ay mga klase at ang B ay namamana mula sa A at ang D ay namamana mula sa parehong B at C, kung gayon ito ay isang Hybrid na mana.
Ano ang Mga Pagkakatulad sa pagitan ng Polymorphism at Inheritance sa OOP?
Parehong mga konsepto ng Object Oriented Programming
Ano ang Pagkakaiba sa pagitan ng Polymorphism at Inheritance sa OOP?
Polymorphism vs Inheritance sa OOP |
|
Ang Polymorphism ay isang kakayahan ng isang bagay na kumilos sa maraming paraan. | Ang Inheritance ay ang paggawa ng bagong klase gamit ang mga katangian at pamamaraan ng kasalukuyang klase. |
Paggamit | |
Ginagamit ang polymorphism para sa mga bagay na tumawag kung anong anyo ng mga pamamaraan sa oras ng pag-compile at runtime. | Ginagamit ang mana para sa muling paggamit ng code. |
Pagpapatupad | |
Polymorphism ay ipinapatupad sa mga pamamaraan. | Ang inheritance ay ipinapatupad sa mga klase. |
Mga Kategorya | |
Polymorphism ay maaaring hatiin sa overloading at overriding. | Maaaring hatiin ang mana sa single-level, multi-level, hierarchical, hybrid, at multiple inheritance. |
Buod – Polymorphism vs Inheritance sa OOP
Ang Polymorphism at Inheritance ay mga pangunahing konsepto sa Object Oriented Programming. Ang pagkakaiba sa pagitan ng Polymorphism at Inheritance sa OOP ay ang Polymorphism ay isang karaniwang interface sa maraming mga form at Inheritance ay upang lumikha ng isang bagong klase gamit ang mga katangian at pamamaraan ng isang umiiral na klase. Ang parehong mga konsepto ay malawakang ginagamit sa Software Development.
I-download ang PDF Polymorphism vs Inheritance sa OOP
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 Polymorphism at Inheritance sa OOP