Implementira naspram proširenja
Implements i Extends dvije su ključne riječi koje se nalaze u programskom jeziku Java koje pružaju sredstva za prijenos dodane funkcionalnosti u novu klasu. Ključna riječ Implements koristi se eksplicitno za implementaciju sučelja, 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čite sintakse ili ključne riječi za primjenu tih koncepata. Ovaj se članak fokusira samo na Implementira i proširuje ključne riječi definirane u Javi.
Proširuje se
Ključna riječ Extends koristi se za implementaciju koncepta nasljeđivanja u programskom jeziku Java. Nasljeđivanje u biti omogućuje ponovnu upotrebu koda dopuštajući proširenje svojstava i ponašanja postojeće klase novodefiniranom klasom. Kada nova podklasa (ili izvedena klasa) proširi superklasu (ili roditeljsku klasu), ta će podklasa naslijediti sve atribute i metode superklase. Podklasa može po izboru nadjačati ponašanje (pružiti novu ili proširenu funkcionalnost metodama) naslijeđeno od nadređene klase. Podklasa ne može proširiti više super klasa u Javi. Stoga ne možete koristiti extends za višestruko nasljeđivanje. Kako biste imali višestruko nasljeđivanje, trebate koristiti sučelja kao što je objašnjeno u nastavku.
Implementi
Ključna riječ Implements u programskom jeziku Java koristi se za implementaciju sučelja od strane klase. Sučelje u Javi je apstraktni tip koji se koristi za određivanje ugovora koji trebaju implementirati klase koje implementiraju to sučelje. Obično će sučelje sadržavati samo potpise metoda i deklaracije konstanti. Svako sučelje koje implementira određeno sučelje trebalo bi implementirati sve metode definirane u sučelju ili bi trebalo biti deklarirano kao apstraktna klasa. U Javi se tip reference objekta može definirati kao tip sučelja. Ali taj objekt mora ili biti null ili bi trebao sadržavati objekt 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. Sučelje ne može implementirati drugo sučelje. Međutim, sučelje može proširiti klasu.
Razlika između implementacije i proširenja
Iako su Implements i Extends dvije ključne riječi koje pružaju mehanizam za nasljeđivanje atributa i ponašanja klase u Java programskom jeziku, one se koriste u dvije različite svrhe. Ključna riječ Implements koristi se za klasu za implementaciju određenog sučelja, dok se ključna riječ Extends koristi za podklasu za proširenje iz super klase. Kada klasa implementira sučelje, ta klasa treba implementirati sve metode definirane u sučelju, ali kada podklasa proširuje super klasu, ona može, ali ne mora nadjačati metode uključene u nadređenu klasu. Konačno, još jedna ključna razlika između Implements i Extends je da klasa može implementirati više sučelja, ali se može proširiti samo iz jedne super klase u Javi. Općenito, korištenje Implementa (sučelja) smatra se povoljnijim u usporedbi s korištenjem Extends (nasljeđivanje), iz nekoliko razloga kao što su veća fleksibilnost i mogućnost minimiziranja spajanja. Stoga se u praksi preferira programiranje na sučelje nego proširenje iz osnovnih klasa.