Végrehajtja vs kiterjeszti
Az Implements és az Extens két olyan kulcsszó található a Java programozási nyelvben, amely lehetővé teszi a hozzáadott funkciók új osztályba történő áthelyezését. Az implementációs kulcsszó kifejezetten egy felület megvalósításához, míg az Extens kulcsszó az (szuper) osztálytól való örökléshez használatos. Felhívjuk figyelmét, hogy az öröklés fogalma és az interfészek a legtöbb más objektumorientált programozási nyelvben, például a C # és a VB.NET, megtalálhatók, ám ezek eltérő szintaxisát vagy kulcsszavait kínálják ezen fogalmak alkalmazására. Ez a cikk csak a Java-ban meghatározott végrehajtási és kibővítési kulcsszavakkal foglalkozik.
kiterjeszti
Az Extens kulcsszó az öröklés fogalmának a Java programozási nyelvben történő megvalósításához szolgál. Az öröklés alapvetően a kód újbóli felhasználását biztosítja azáltal, hogy lehetővé teszi a meglévő osztály tulajdonságainak és viselkedésének kibővítését egy újonnan meghatározott osztály által. Amikor egy új alosztály (vagy származtatott osztály) kibővíti a szuper osztályt (vagy szülő osztályt), akkor az alosztály örökli a szuper osztály összes attribútumát és módszerét. Az alosztály opcionálisan felülbírálhatja a szülőosztálytól örökölt viselkedést (új vagy kibővített funkcionalitást biztosíthat a módszerekhez). Az alosztály nem terjesztheti ki a Java több szuper osztályát. Ezért nem használhat kiterjesztéseket több örökléshez. A többszörös öröklés érdekében interfészeket kell használni az alábbiak szerint.
munkagépek
A Java programozási nyelvben végrehajtott kulcsszó az interfész osztályok általi megvalósításához szolgál. A Java interfész egy absztrakt típusú, amely meghatározza a szerződést, amelyet az interfészt megvalósító osztályoknak kell végrehajtaniuk. Általában egy interfész csak metódusaláírásokat és állandó deklarációkat tartalmaz. Minden olyan interfésznek, amely egy adott felületet megvalósít, a felületen meghatározott összes módszert végre kell hajtania, vagy elvont osztálynak kell nyilvánítania. A Java-ban az objektum-referencia típusa interfész típusként definiálható. Ennek az objektumnak vagy semlegesnek kell lennie, vagy egy olyan objektumnak kell lennie, amely az adott felületet megvalósítja. Az Implements kulcsszó használatával a Java-ban több interfészt is megvalósíthat egyetlen osztályba. Egy interfész nem valósíthat meg más interfészt. Az interfész azonban kiterjesztheti az osztályt.
Különbség a végrehajtások és a kiterjesztések között
Noha az Implements és az Extens két olyan kulcsszó, amelyek mechanizmust biztosítanak az attribútumok és viselkedés osztályba vételéhez a Java programozási nyelvben, ezeket két különböző célra használják. Az Implements kulcsszót egy osztályhoz használják egy adott felület megvalósításához, míg az Extends kulcsszót az alosztályhoz használják, hogy kiterjesszék egy szuper osztálytól. Amikor egy osztály felületet valósít meg, akkor az osztálynak végre kell hajtania az interfészben meghatározott összes módszert, de amikor egy alosztály kiterjeszt egy szuperosztályt, akkor felülbírálhatja vagy nem felülírhatja a szülőosztályban szereplő módszereket. Végül, egy másik legfontosabb különbség az implementációk és a kiterjesztések között az, hogy egy osztály több interfészt is megvalósíthat, de a Java-ban csak egy szuper osztálytól terjedhet ki. Általában az eszköz (interfész) használatát kedvezőbbnek tekintik az Extens (öröklés) használatához képest, több okból, mint például a nagyobb rugalmasság és az összekapcsolás minimalizálásának képessége. Ezért a gyakorlatban az interfészre történő programozás előnyben részesíthető, mint az alaposztályoktól történő kiterjesztés.