Tabele de comparare
Bazele comparației | Prelungește | ustensile |
---|---|---|
De bază | Extensia cuvântului cheie este utilizată pentru a crea o subclasă utilizând caracteristicile unei clase super. | Cuvântul cheie implements este utilizat pentru implementarea unei interfețe |
metode | Extensia cuvântului cheie nu poate să suprascrie toate metodele unei clase super. | Cuvântul cheie implementat trebuie să implementeze toate metodele unei interfețe implementate. |
Clasă | O clasă poate extinde doar o clasă super. | O clasă poate implementa interacțiuni multiple. |
Interfață | O interfață poate extinde mai multe interfețe. | O interfață nu poate implementa o altă interfață. |
Definiția cuvântului cheie extends
Moștenirea, fiind un concept important în programarea orientată pe obiecte, se realizează atunci când o subclasă extinde o altă superclazie. O subclasă este permisă să extindă doar o superclazie. O clasă nu poate extinde niciodată mai mult de o clasă super în Java. Atunci când o clasă extinde o altă clasă, ea poate suprascrie metodele definite într-o superclasă. Să înțelegem că cuvântul cheie se extinde cu ajutorul unui exemplu.
clasa A {String s; A (șirul s1) {s = s1; } // afișează șirul void display () {System.out.println (+ s); }} clasa B extinde A {String i; B (String s1, String i1) {super (s1); i = i1; } void dispaly () {super.dispaly (); / * afișarea () a clasei A invocată. * / System.out.println (+ i); }} clasa Override {public static void main (String args []) {B ob = nou B (Tech, Diferențe); ob.display (); / * afișarea clasei B invocate * /}} / * out put * / Tech Differences
În codul de mai sus, puteți observa că clasa B a extins clasa A și a suprasolicitat afișarea metodei () definită în clasa A. Într-un mod similar, o interfață poate extinde mai mult de o interfață la un moment dat. Deoarece interfața nu trebuie să implementeze nici o metodă a interfeței extinse, prin urmare, este permisă moștenirea mai multor interfețe la un moment dat.
Definiția cuvântului cheie implements
Cu ajutorul cuvântului cheie implementat, o clasă moștenește toate metodele dintr-o interfață. Atunci când o clasă implementează o interfață, acea clasă trebuie să implementeze toate metodele de interfață implementate. O interfață nu poate implementa o altă interfață, deoarece implementează promisiunile de cuvinte cheie implementând metodele, dar o interfață nu implementează niciodată metode în ea, deci este imposibil ca o interfață să implementeze o altă interfață. Să înțelegem că implementează cuvântul cheie cu ajutorul unui exemplu.
șiruri de interfață {void display (String s); } interfață integer {void show (int i); } Demo de clasă implementează șiruri, integer {void show (int i) {System.Out.Println ("valoare integer:" + i); } void display (String s) {System.Out.Println ("valoare șir:" + s); }} clasa Demo_main {public static void principal (șir args []) {Demo d = new Demo (); d.display ( "TechDifferences"); d.show (2); }} / * ieșire * / TechDiferențe 2
Ca și în codul de mai sus, puteți vedea că demo-ul de clasă implementează două interfețe de șiruri și integer și a implementat metodele declarate în ambele interfețe care sunt display () și show ().
Diferențe cheie între extensii și instrumente
- O clasă poate moșteni o altă clasă sau o interfață moșteneste alte interfețe utilizând un cuvânt cheie care se extinde, în timp ce o clasă poate implementa interfețe folosind un cuvânt cheie implementat.
- O subclasă care extinde o superclasă poate sau nu să suprascrie toate metodele dintr-o superclasă. Pe de altă parte, o clasă care implementează o interfață trebuie să definească / să implementeze toate metodele acelei interfețe.
- O clasă poate implementa orice număr de interfață în același timp. Pe de altă parte, o clasă poate extinde doar o singură clasă superioară.
- O interfață poate extinde orice număr de interfețe, însă o interfață nu poate implementa nici o altă interfață, deoarece mijloacele de implementare care definesc metodele și interfața au întotdeauna metode abstracte, astfel încât o interfață nu poate implementa altă interfață.
Concluzie:
Închei discuția spunând că implementarea unei interfețe face codul mai flexibil decât extinderea unei clase. Cum evită restricția de moștenire a unei singure clase super în Java. Cu ajutorul cuvintelor cheie implementate, o clasă poate moșteni caracteristici ale mai multor interfețe.