Implements vs. Extends
Implements i Extends són dues paraules clau que es troben al llenguatge de programació Java que ofereixen un mitjà per transferir funcionalitats afegides a una classe nova. La paraula clau Implements s'utilitza explícitament per implementar una interfície, mentre que la paraula clau Extends s'utilitza per heretar d'una (super) classe. Tingueu en compte que els conceptes d'herència i interfícies estan presents a la majoria dels altres llenguatges de programació orientats a objectes com C i VB. NET, però ofereixen diferents sintaxis o paraules clau per aplicar aquests conceptes. Aquest article només se centra en les paraules clau Implements i Extends definides a Java.
Amplia
La paraula clau Extends s'utilitza per implementar el concepte d'herència al llenguatge de programació Java. L'herència proporciona essencialment la reutilització del codi permetent estendre les propietats i el comportament d'una classe existent per una classe recentment definida. Quan una nova subclasse (o classe derivada) amplia una superclasse (o classe pare), aquesta subclasse heretarà tots els atributs i mètodes de la superclasse. La subclasse pot substituir opcionalment el comportament (proporcionar una funcionalitat nova o ampliada als mètodes) heretat de la classe pare. Una subclasse no pot estendre diverses superclasses a Java. Per tant, no podeu utilitzar extensions per a l'herència múltiple. Per tenir una herència múltiple, heu d'utilitzar interfícies tal com s'explica a continuació.
Implements
La paraula clau Implements en llenguatge de programació Java s'utilitza per implementar una interfície per part d'una classe. Una interfície en Java és un tipus abstracte que s'utilitza per especificar un contracte que ha de ser implementat per classes, que implementen aquesta interfície. Normalment, una interfície només contindrà signatures de mètodes i declaracions constants. Qualsevol interfície que implementi una interfície particular hauria d'implementar tots els mètodes definits a la interfície, o s'hauria de declarar com una classe abstracta. A Java, el tipus de referència d'un objecte es pot definir com a tipus d'interfície. Però aquest objecte ha de ser nul o hauria de contenir un objecte d'una classe, que implementa aquesta interfície en particular. Utilitzant la paraula clau Implements a Java, podeu implementar diverses interfícies en una sola classe. Una interfície no pot implementar una altra interfície. Tanmateix, una interfície pot ampliar una classe.
Diferència entre implements i extensions
Tot i que Implements i Extends són dues paraules clau que proporcionen un mecanisme per heretar els atributs i el comportament d'una classe en llenguatge de programació Java, s'utilitzen per a dos propòsits diferents. La paraula clau Implements s'utilitza perquè una classe implementi una determinada interfície, mentre que la paraula clau Extends s'utilitza perquè una subclasse s'estén des d'una superclasse. Quan una classe implementa una interfície, aquesta ha d'implementar tots els mètodes definits a la interfície, però quan una subclasse amplia una superclasse, pot substituir o no els mètodes inclosos a la classe pare. Finalment, una altra diferència clau entre Implements i Extends és que, una classe pot implementar diverses interfícies, però només es pot estendre des d'una superclasse a Java. En general, l'ús d'Implements (interfícies) es considera més favorable en comparació amb l'ús d'Extends (herència), per diverses raons com una major flexibilitat i la capacitat de minimitzar l'acoblament. Per tant, a la pràctica, es prefereix programar a una interfície en lloc d'ampliar-se des de les classes base.