Zalecane, 2022

Wybór Redakcji

Różnica między rozszerzeniami a implementacjami słów kluczowych w Javie

Rozszerzenia słów kluczowych i narzędzia są używane do dziedziczenia funkcji już istniejącego bloku nadrzędnego w nowo utworzonym bloku potomnym. Używając słowa kluczowego extends, nowo utworzona klasa (podklasa) może dziedziczyć funkcje istniejącej klasy (nadklasy). Używając słowa kluczowego narzędzia, nowo utworzona klasa może implementować wszystkie metody interfejsu. Podstawową różnicą między słowami kluczowymi rozszerza się i implementuje jest to, że klasa rozszerza inną klasę o dziedziczenie wszystkich jej członków, podczas gdy klasa implementuje interfejs do dziedziczenia wszystkich metod i implementowania ich zgodnie z wymaganiami. Istnieją inne różnice między rozszerzeniami słów kluczowych i narzędziami omówionymi na poniższym wykresie porównawczym.

Wykresy porównawcze

Podstawa do porównaniaWydłuża sięNarzędzia
PodstawowySłowo kluczowe extends służy do tworzenia podklasy za pomocą funkcji klasy super.Słowo kluczowe implements służy do implementacji interfejsu
MetodySłowo kluczowe extends nie może zastępować wszystkich metod klasy super.Słowo kluczowe implements musi implementować wszystkie metody implementowanego interfejsu.
KlasaKlasa może obejmować tylko jedną super klasę.Klasa może implementować wiele interafaces.
BerłoInterfejs może obejmować więcej niż jeden interfejs.Interfejs nie może zaimplementować innego interfejsu.

Definicja słowa kluczowego extends

Dziedziczenie będące ważną koncepcją programowania obiektowego osiąga się, gdy podklasa rozszerza kolejną nadklasę. Podklasa może rozszerzać tylko jedną nadklasę. Klasa nie może nigdy przedłużyć więcej niż jednej super klasy w Javie. Gdy klasa rozszerza inną klasę, może zastąpić metody zdefiniowane w nadklasie. Rozumiemy, że słowo kluczowe rozciąga się za pomocą przykładu.

 klasa A {String s; A (String s1) {s = s1; } // display string void display () {System.out.println (+ s); }} klasa B extends A {String i; B (String s1, String i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * display () klasy A wywoływanej. * / System.out.println (+ i); }} class Override {public static void main (String args []) {B ob = new B (Tech, Differences); ob.display (); / * wyświetlanie klasy B wywoływanej * /}} / * out put * / Tech Differences 

W powyższym kodzie można zauważyć, że klasa B ma rozszerzoną klasę A i zastąpiła ekran metody () zdefiniowany w klasie A. W podobny sposób interfejs może rozciągać się na więcej niż jeden interfejs na raz. Interfejs nie musi implementować żadnej metody interfejsu rozszerzonego, dlatego może dziedziczyć wiele interfejsów jednocześnie.

Definicja słowa kluczowego implements

Za pomocą implementacji słowa kluczowego klasa dziedziczy wszystkie metody w interfejsie. Kiedy klasa implementuje interfejs, ta klasa musi implementować wszystkie metody implementowanego interfejsu. Interfejs nigdy nie może zaimplementować innego interfejsu, ponieważ implementacja słowa kluczowego obiecuje implementację metod, ale interfejs nigdy nie implementuje w nim metod, więc interfejs nie może implementować innego interfejsu. Pozwól nam zrozumieć słowo kluczowe implements na przykładzie.

 ciągi interfejsów {void display (String s); } interface integer {void show (int i); } class Demo implementuje ciągi, integer {void show (int i) {System.Out.Println ("wartość całkowita:" + i); } void display (String s) {System.Out.Println ("wartość ciągu:" + s); }} class Demo_main {public static void main (string args []) {Demo d = new Demo (); d.display ("TechDifferences"); d.show (2); }} / * output * / TechDifferences 2 

Jak w powyższym kodzie widać, że demo klasy implementuje dwa interfejsy ciągów i liczb całkowitych i zaimplementowało metody zadeklarowane w obu interfejsach, które są display () i show ().

Kluczowe różnice między rozszerzeniami a narzędziami

  1. Klasa może dziedziczyć inną klasę lub interfejs dziedziczy inne interfejsy za pomocą słowa kluczowego, podczas gdy klasa może implementować interfejsy za pomocą narzędzi słów kluczowych.
  2. Podklasa, która rozszerza nadklasę, może lub nie może zastąpić wszystkich metod w nadklasie. Z drugiej strony klasa implementująca interfejs musi zdefiniować / wdrożyć wszystkie metody tego interfejsu.
  3. Klasa może implementować dowolną liczbę interfejsów w tym samym czasie. Z drugiej strony klasa może obejmować tylko jedną super klasę.
  4. Interfejs może rozszerzyć dowolną liczbę interfejsów, ale interfejs nigdy nie może zaimplementować żadnego innego interfejsu, ponieważ środki implementujące definiują metody, a interfejs zawsze ma abstrakcyjne metody, aby interfejs nigdy nie mógł zaimplementować innego interfejsu.

Wniosek:

Kończę dyskusję mówiącą, że implementacja interfejsu czyni kod bardziej elastycznym niż rozszerzanie klasy. Pozwala to uniknąć ograniczenia dziedziczenia tylko jednej super klasy w Javie. Używając słowa kluczowego narzędzia, klasa może dziedziczyć funkcje więcej niż jednego interfejsu.

Top