Implements vs Extends
Implements and Extends sú dve kľúčové slová nájdené v programovacom jazyku Java, ktoré poskytujú prostriedok na prenos pridanej funkčnosti do novej triedy. Kľúčové slovo Implements sa explicitne používa na implementáciu rozhrania, zatiaľ čo kľúčové slovo Extends sa používa na dedenie z (super) triedy. Upozorňujeme, že koncepty dedičnosti a rozhraní sú prítomné vo väčšine ostatných objektovo orientovaných programovacích jazykov, ako sú C # a VB. NET, ale na ich aplikáciu ponúkajú inú syntax alebo kľúčové slová. Tento článok sa zameriava iba na kľúčové slová Implements and Extends definované v Jave.
Predlžuje
Kľúčové slovo Extends sa používa na implementáciu konceptu dedenia v programovacom jazyku Java. Dedičstvo v podstate poskytuje opätovné použitie kódu umožnením rozšírenia vlastností a správania existujúcej triedy o novo definovanú triedu. Keď nová podtrieda (alebo odvodená trieda) rozšíri nadtriedu (alebo nadradenú triedu), táto podtrieda zdedí všetky atribúty a metódy nadradenej triedy. Podtrieda môže voliteľne prepísať správanie (poskytnúť metódam nové alebo rozšírené funkcie) zdedené z nadradenej triedy. Podtrieda nemôže v Jave rozšíriť viac super tried. Preto nemôžete použiť prírastky na viacnásobné dedičstvo. Ak chcete mať viacnásobné dedičstvo, musíte použiť rozhrania, ako je vysvetlené nižšie.
Plnenie
Kľúčové slovo Implements v programovacom jazyku Java sa používa na implementáciu rozhrania triedou. Rozhranie v Jave je abstraktný typ, ktorý sa používa na určenie zmluvy, ktorá by mala byť implementovaná triedami, ktoré dané rozhranie implementujú. Rozhranie bude zvyčajne obsahovať iba podpisy metód a neustále deklarácie. Každé rozhranie, ktoré implementuje konkrétne rozhranie, by malo implementovať všetky metódy definované v rozhraní alebo by malo byť deklarované ako abstraktná trieda. V prostredí Java je možné typ odkazu na objekt definovať ako typ rozhrania. Ale tento objekt musí mať buď hodnotu null, alebo by mal obsahovať objekt triedy, ktorá implementuje dané rozhranie. Pomocou kľúčového slova Implements v Jave môžete implementovať viac rozhraní do jednej triedy. Rozhranie nemôže implementovať iné rozhranie. Rozhranie však môže rozšíriť triedu.
Rozdiel medzi implementáciami a rozšíreniami
Hoci sú Implements and Extends dve kľúčové slová, ktoré poskytujú mechanizmus na dedenie atribútov a správania triedy v programovacom jazyku Java, používajú sa na dva rôzne účely. Kľúčové slovo Implements sa používa pre triedu na implementáciu určitého rozhrania, zatiaľ čo kľúčové slovo Extends sa používa pre podtriedu, ktorá sa rozširuje zo super triedy. Keď trieda implementuje rozhranie, musí táto trieda implementovať všetky metódy definované v rozhraní, ale keď podtrieda rozširuje super triedu, môže alebo nemusí prepísať metódy zahrnuté v nadradenej triede. A nakoniec, ďalším kľúčovým rozdielom medzi nástrojmi Implements a Extends je, že trieda môže implementovať viac rozhraní, ale v Jave sa môže rozšíriť iba z jednej super triedy. Všeobecne sa používanie nástrojov (rozhraní) považuje za priaznivejšie v porovnaní s používaním rozšírení (dedičnosť),z niekoľkých dôvodov, ako je vyššia flexibilita a schopnosť minimalizovať väzbu. V praxi sa preto uprednostňuje programovanie na rozhranie pred rozširovaním zo základných tried.