Różnica między narzędziami i rozszerzeniami

Implementuje vs rozszerza

Implements and Extends to dwa słowa kluczowe znalezione w języku programowania Java, które umożliwiają przeniesienie dodatkowej funkcjonalności do nowej klasy. Słowo kluczowe Implements jest jawnie używane do implementacji interfejsu, natomiast słowo kluczowe Extends jest dziedziczone z (super) klasy. Należy pamiętać, że pojęcia dziedziczenia i interfejsy są obecne w większości innych obiektowych języków programowania, takich jak C # i VB.NET, ale oferują inną składnię lub słowa kluczowe do zastosowania tych pojęć. W tym artykule skupiono się wyłącznie na implementacji i rozszerzaniu słów kluczowych zdefiniowanych w Javie.

Rozciąga się

Słowo kluczowe Extends służy do implementacji koncepcji dziedziczenia w języku programowania Java. Dziedziczenie zasadniczo zapewnia ponowne użycie kodu, umożliwiając rozszerzenie właściwości i zachowania istniejącej klasy o nowo zdefiniowaną klasę. Gdy nowa podklasa (lub klasa pochodna) rozszerzy superklasę (lub klasę nadrzędną), podklasa ta odziedziczy wszystkie atrybuty i metody superklasy. Podklasa może opcjonalnie zastąpić zachowanie (zapewniające nowe lub rozszerzone funkcje metodom) odziedziczone z klasy nadrzędnej. Podklasa nie może rozszerzać wielu superklas w Javie. Dlatego nie można używać rozszerzeń do wielokrotnego dziedziczenia. Aby uzyskać wielokrotne dziedziczenie, musisz użyć interfejsów, jak wyjaśniono poniżej.

Narzędzia

Implementuje słowo kluczowe w języku programowania Java do implementacji interfejsu przez klasę. Interfejs w Javie jest typem abstrakcyjnym, który służy do określenia kontraktu, który powinien zostać zaimplementowany przez klasy, które implementują ten interfejs. Zwykle interfejs będzie zawierał tylko sygnatury metod i stałe deklaracje. Każdy interfejs, który implementuje określony interfejs, powinien implementować wszystkie metody zdefiniowane w interfejsie lub powinien zostać zadeklarowany jako klasa abstrakcyjna. W Javie typ odwołania do obiektu można zdefiniować jako typ interfejsu. Ale ten obiekt musi być zerowy lub powinien zawierać obiekt klasy, który implementuje ten konkretny interfejs. Za pomocą słowa kluczowego Implements w Javie można zaimplementować wiele interfejsów w jednej klasie. Interfejs nie może zaimplementować innego interfejsu. Interfejs może jednak rozszerzyć klasę.

Różnica między narzędziami i rozszerzeniami

Chociaż Implements and Extends są dwoma słowami kluczowymi, które zapewniają mechanizm dziedziczenia atrybutów i zachowania klasy w języku programowania Java, są one używane do dwóch różnych celów. Słowo kluczowe Implements jest używane dla klasy do implementacji określonego interfejsu, natomiast słowo kluczowe Extends jest używane dla podklasy rozszerzającej się z superklasy. Kiedy klasa implementuje interfejs, musi ona zaimplementować wszystkie metody zdefiniowane w interfejsie, ale gdy podklasa rozszerza superklasę, może przesłonić metody zawarte w klasie nadrzędnej. Wreszcie, kolejna kluczowa różnica między implementacjami i rozszerzeniami polega na tym, że klasa może implementować wiele interfejsów, ale może rozszerzać się tylko z jednej superklasy w Javie. Zasadniczo użycie narzędzi (interfejsów) uważa się za bardziej korzystne w porównaniu z użyciem rozszerzeń (dziedziczenie) z kilku powodów, takich jak większa elastyczność i możliwość zminimalizowania sprzężenia. Dlatego w praktyce preferowane jest programowanie interfejsu zamiast rozszerzania go z klas podstawowych.