Rozdíl mezi nástroji a rozšířeními

Implementace vs rozšiřuje

Implements and Extends jsou dvě klíčová slova, která se nacházejí v programovacím jazyce Java a která poskytují prostředky pro přenos přidané funkce do nové třídy. Klíčové slovo nástroje implementace se používá explicitně k implementaci rozhraní, zatímco klíčové slovo rozšíření se používá pro zdědění z (super) třídy. Vezměte prosím na vědomí, že koncepty dědičnosti a rozhraní jsou přítomny ve většině ostatních objektově orientovaných programovacích jazyků, jako jsou C # a VB.NET, ale nabízejí různé syntaxe nebo klíčová slova pro použití těchto konceptů. Tento článek se zaměřuje pouze na implementace a rozšíření klíčových slov definovaných v Javě.

Rozšiřuje

Rozšiřuje klíčové slovo se používá k implementaci koncepce dědičnosti v programovacím jazyce Java. Dědičnost v podstatě poskytuje opakované použití kódu tím, že umožňuje rozšíření vlastností a chování existující třídy o nově definovanou třídu. Když nová podtřída (nebo odvozená třída) rozšíří nadřazenou třídu (nebo nadřazenou třídu), podtřída zdědí všechny atributy a metody nadřazené třídy. Podtřída může volitelně potlačit chování (poskytovat nové nebo rozšířené funkce metodám) zděděné z nadřazené třídy. Podtřída nemůže rozšířit více super tříd v Javě. Proto nelze použít rozšíření pro vícenásobné dědictví. Chcete-li mít více dědictví, musíte použít rozhraní, jak je vysvětleno níže.

Implementace

Klíčové slovo implementuje v programovacím jazyce Java se používá pro implementaci rozhraní třídou. Rozhraní v Javě je abstraktní typ, který se používá k určení smlouvy, která by měla být implementována třídami, které toto rozhraní implementují. Rozhraní obvykle obsahuje pouze podpisy metod a konstantní deklarace. Jakékoli rozhraní, které implementuje konkrétní rozhraní, by mělo implementovat všechny metody definované v rozhraní nebo by mělo být deklarováno jako abstraktní třída. V Javě lze typ odkazu na objekt definovat jako typ rozhraní. Ale tento objekt musí být buď nulový, nebo by měl obsahovat objekt třídy, která implementuje dané konkrétní rozhraní. Pomocí klíčového slova Implements v Javě můžete implementovat více rozhraní do jedné třídy. Rozhraní nemůže implementovat jiné rozhraní. Rozhraní však může rozšířit třídu.

Rozdíl mezi nástroji a rozšířeními

Implements and Extends jsou dvě klíčová slova, která poskytují mechanismus zdědění atributů a chování třídě v programovacím jazyce Java, ale používají se pro dva různé účely. Klíčové slovo implementuje se používá pro třídu k implementaci určitého rozhraní, zatímco klíčové slovo Rozšíření se používá pro podtřídu pro rozšíření ze super třídy. Když třída implementuje rozhraní, musí tato třída implementovat všechny metody definované v rozhraní, ale když podtřída rozšiřuje nadřazenou třídu, může nebo nemusí potlačit metody zahrnuté v nadřazené třídě. Konečně, další klíčový rozdíl mezi nástroji Implements a Extends je, že třída může implementovat více rozhraní, ale může se rozšířit pouze z jedné super třídy v Javě. Obecně platí, že použití nástrojů Implements (rozhraní) je ve srovnání s používáním rozšíření (dědičnost) příznivější, a to z několika důvodů, jako je vyšší flexibilita a schopnost minimalizovat propojení. Proto je v praxi programování na rozhraní preferováno před rozšířením ze základních tříd.