Wykresy porównawcze
Podstawa do porównania | Wydłuża się | Narzędzia |
---|---|---|
Podstawowy | Słowo kluczowe extends służy do tworzenia podklasy za pomocą funkcji klasy super. | Słowo kluczowe implements służy do implementacji interfejsu |
Metody | Słowo kluczowe extends nie może zastępować wszystkich metod klasy super. | Słowo kluczowe implements musi implementować wszystkie metody implementowanego interfejsu. |
Klasa | Klasa może obejmować tylko jedną super klasę. | Klasa może implementować wiele interafaces. |
Berło | Interfejs 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
- 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.
- 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.
- Klasa może implementować dowolną liczbę interfejsów w tym samym czasie. Z drugiej strony klasa może obejmować tylko jedną super klasę.
- 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.