Implements vs Extends
Ang Implements at Extends ay dalawang keyword na matatagpuan sa Java programming language na nagbibigay ng paraan ng paglilipat ng karagdagang functionality sa isang bagong klase. Ang Implements na keyword ay tahasang ginagamit para sa pagpapatupad ng isang interface, habang ang Extends na keyword ay ginagamit para sa pagmamana mula sa isang (super) na klase. Pakitandaan na ang mga konsepto ng inheritance at mga interface ay naroroon sa karamihan ng iba pang object oriented programming language tulad ng C at VB. NET, ngunit nag-aalok sila ng iba't ibang syntax o mga keyword para sa paglalapat ng mga konseptong iyon. Nakatuon lang ang artikulong ito sa Mga Implement at Extends na mga keyword na tinukoy sa Java.
Extends
Extends keyword ay ginagamit upang ipatupad ang konsepto ng inheritance sa Java programming language. Ang inheritance ay mahalagang nagbibigay ng muling paggamit ng code sa pamamagitan ng pagpapahintulot sa pagpapalawak ng mga katangian at pag-uugali ng isang umiiral na klase ng isang bagong tinukoy na klase. Kapag ang isang bagong subclass (o derived class) ay nagpalawak ng isang super class (o parent class) na ang subclass ay magmamana ng lahat ng attribute at method ng super class. Maaaring opsyonal na i-override ng subclass ang gawi (magbigay ng bago o pinahabang functionality sa mga pamamaraan) na minana mula sa parent class. Ang isang subclass ay hindi maaaring mag-extend ng maraming super class sa Java. Samakatuwid, hindi ka maaaring gumamit ng mga extend para sa maramihang mana. Upang magkaroon ng maraming inheritance, kailangan mong gumamit ng mga interface tulad ng ipinaliwanag sa ibaba.
Implements
Ang Implements keyword sa Java programming language ay ginagamit para sa pagpapatupad ng interface ng isang klase. Ang interface sa Java ay isang abstract na uri na ginagamit upang tukuyin ang isang kontrata na dapat ipatupad ng mga klase, na nagpapatupad ng interface na iyon. Karaniwan ang isang interface ay maglalaman lamang ng mga lagda ng pamamaraan at patuloy na deklarasyon. Ang anumang interface na nagpapatupad ng isang partikular na interface ay dapat magpatupad ng lahat ng mga pamamaraan na tinukoy sa interface, o dapat na ideklara bilang isang abstract na klase. Sa Java, ang uri ng isang object reference ay maaaring tukuyin bilang isang uri ng interface. Ngunit ang bagay na iyon ay dapat na alinman sa null o dapat magkaroon ng isang bagay ng isang klase, na nagpapatupad ng partikular na interface. Gamit ang Implements na keyword sa Java, maaari kang magpatupad ng maraming interface sa isang klase. Ang isang Interface ay hindi maaaring magpatupad ng isa pang interface. Gayunpaman, ang isang interface ay maaaring mag-extend ng isang klase.
Pagkakaiba sa pagitan ng Mga Implement at Extend
Bagaman, ang Implements at Extends ay dalawang keyword na nagbibigay ng mekanismo para magmana ng mga attribute at gawi sa isang klase sa Java programming language, ginagamit ang mga ito para sa dalawang magkaibang layunin. Ang Implements na keyword ay ginagamit para sa isang klase upang ipatupad ang isang partikular na interface, habang ang Extends na keyword ay ginagamit para sa isang subclass na palawigin mula sa isang super class. Kapag ang isang klase ay nagpatupad ng isang interface, ang klase na iyon ay kailangang ipatupad ang lahat ng mga pamamaraan na tinukoy sa interface, ngunit kapag ang isang subclass ay nagpalawak ng isang super class, maaari o hindi nito i-override ang mga pamamaraan na kasama sa parent class. Sa wakas, ang isa pang pangunahing pagkakaiba sa pagitan ng Implements at Extends ay iyon, ang isang klase ay maaaring magpatupad ng maramihang mga interface ngunit maaari lamang itong mag-extend mula sa isang super class sa Java. Sa pangkalahatan, ang paggamit ng Implements (interfaces) ay itinuturing na mas kanais-nais kumpara sa paggamit ng Extends (inheritance), para sa ilang kadahilanan tulad ng mas mataas na flexibility at ang kakayahang mabawasan ang coupling. Samakatuwid, sa pagsasagawa, ang programming sa isang interface ay mas gusto kaysa sa pagpapalawig mula sa mga batayang klase.