Recomandat, 2024

Alegerea Editorului

Diferența Între extinderea și implementarea cuvintelor cheie în Java

Cuvintele cheie se extind și implementările sunt folosite pentru a moșteni caracteristicile unui bloc parental deja existent în blocul nou creat. Utilizând cuvântul cheie extins, o clasă nou creată (subclasa) poate moșteni caracteristicile unei clase existente (superclase). Cu ajutorul cuvintelor cheie implementate, o clasă nou creată poate implementa toate metodele unei interfețe. Principala diferență dintre cuvinte cheie se extinde și implementează este aceea că o clasă extinde o altă clasă pentru a moșteni toate membrii ei, în timp ce o clasă implementează o interfață pentru a moșteni toate metodele și pentru a le implementa conform cerințelor. Există și alte diferențe între extinderea și implementarea cuvintelor cheie într-o diagramă de comparație prezentată mai jos.

Tabele de comparare

Bazele comparațieiPrelungeșteustensile
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
metodeExtensia 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

  1. 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.
  2. 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.
  3. 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ă.
  4. 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.

Top