Implementi vs Extends
Implements i Extends su dvije ključne riječi koje se nalaze u programskom jeziku Java koji obezbjeđuje sredstvo za prijenos dodatne funkcionalnosti u novu klasu. Ključna riječ Implements se eksplicitno koristi za implementaciju interfejsa, dok se ključna riječ Extends koristi za nasljeđivanje od (super) klase. Imajte na umu da su koncepti nasljeđivanja i sučelja prisutni u većini drugih objektno orijentiranih programskih jezika kao što su C i VB. NET, ali oni nude različitu sintaksu ili ključne riječi za primjenu tih koncepata. Ovaj članak se fokusira samo na implementaciju i proširenje ključnih riječi definiranih u Javi.
Produžuje
Extends ključna riječ se koristi za implementaciju koncepta nasljeđivanja u programskom jeziku Java. Nasljeđivanje u suštini pruža ponovnu upotrebu koda dozvoljavajući proširenje svojstava i ponašanja postojeće klase od strane novo definirane klase. Kada nova potklasa (ili izvedena klasa) proširuje super klasu (ili roditeljsku klasu), ta će potklasa naslijediti sve atribute i metode super klase. Potklasa može opciono nadjačati ponašanje (omogućiti novu ili proširenu funkcionalnost metodama) naslijeđeno od roditeljske klase. Potklasa ne može proširiti više super klasa u Javi. Stoga ne možete koristiti proširenja za višestruko nasljeđivanje. Da biste imali višestruko nasljeđivanje, morate koristiti interfejse kao što je objašnjeno ispod.
Oprema
Implementira ključna riječ u Java programskom jeziku se koristi za implementaciju interfejsa od strane klase. Interfejs u Javi je apstraktni tip koji se koristi za specifikaciju ugovora koji treba implementirati od strane klasa koje implementiraju taj interfejs. Obično će interfejs sadržavati samo potpise metoda i deklaracije konstanti. Svaki interfejs koji implementira određeni interfejs treba da implementira sve metode definisane u interfejsu, ili treba da bude deklarisan kao apstraktna klasa. U Javi, tip reference objekta može se definirati kao tip interfejsa. Ali taj objekat mora ili biti null ili treba da sadrži objekat klase, koja implementira to određeno sučelje. Koristeći ključnu riječ Implements u Javi, možete implementirati više sučelja u jednu klasu. Interfejs ne može implementirati drugi interfejs. Međutim, interfejs može proširiti klasu.
Razlika između priključka i produžetka
Iako su implementacije i proširenja dvije ključne riječi koje pružaju mehanizam za nasljeđivanje atributa i ponašanja klase u programskom jeziku Java, one se koriste u dvije različite svrhe. Ključna riječ Implements se koristi za klasu za implementaciju određenog interfejsa, dok se ključna riječ Extends koristi za podklasu koja se proširuje iz super klase. Kada klasa implementira interfejs, ta klasa treba da implementira sve metode definisane u interfejsu, ali kada podklasa proširuje super klasu, ona može, ali ne mora da nadjača metode uključene u roditeljsku klasu. Konačno, još jedna ključna razlika između Implements i Extends je u tome što klasa može implementirati više interfejsa, ali se može proširiti samo iz jedne super klase u Javi. Općenito, upotreba Implementa (interfejsa) se smatra povoljnijom u odnosu na upotrebu Extends (nasljeđivanje), iz nekoliko razloga kao što su veća fleksibilnost i mogućnost minimiziranja spajanja. Stoga se u praksi preferira programiranje na interfejs u odnosu na proširenje od osnovnih klasa.