Implements vs Extends
Implementări și Extindere sunt două cuvinte cheie găsite în limbajul de programare Java, care oferă un mijloc de a transfera funcționalități adăugate la o nouă clasă. Cuvântul cheie Implements este folosit în mod explicit pentru implementarea unei interfețe, în timp ce cuvântul cheie Extends este folosit pentru moștenirea dintr-o (super) clasă. Vă rugăm să rețineți că conceptele de moștenire și interfețe sunt prezente în majoritatea celorl alte limbaje de programare orientate pe obiecte, cum ar fi C și VB. NET, dar oferă diferite sintaxe sau cuvinte cheie pentru aplicarea acestor concepte. Acest articol se concentrează numai pe cuvintele cheie Implementează și Extinde definite în Java.
Se extinde
Cuvântul cheie Extends este folosit pentru a implementa conceptul de moștenire în limbajul de programare Java. Moștenirea oferă în esență reutilizarea codului, permițând extinderea proprietăților și comportamentului unei clase existente de către o clasă nou definită. Când o nouă subclasă (sau o clasă derivată) extinde o super clasă (sau o clasă părinte), acea subclasă va moșteni toate atributele și metodele superclasei. Subclasa poate suprascrie opțional comportamentul (oferă funcționalitate nouă sau extinsă metodelor) moștenit de la clasa părinte. O subclasă nu poate extinde mai multe superclase în Java. Prin urmare, nu puteți utiliza extensii pentru moștenirea multiplă. Pentru a avea moștenire multiplă, trebuie să utilizați interfețe așa cum este explicat mai jos.
Implementări
Cuvântul cheie Implements în limbajul de programare Java este folosit pentru implementarea unei interfețe de către o clasă. O interfață în Java este un tip abstract care este folosit pentru a specifica un contract care ar trebui implementat de clase, care implementează acea interfață. De obicei, o interfață va conține doar semnături de metodă și declarații constante. Orice interfață care implementează o anumită interfață ar trebui să implementeze toate metodele definite în interfață sau ar trebui să fie declarată ca o clasă abstractă. În Java, tipul unei referințe la obiect poate fi definit ca un tip de interfață. Dar acel obiect trebuie fie să fie nul, fie ar trebui să dețină un obiect al unei clase, care implementează acea interfață particulară. Folosind cuvântul cheie Implements în Java, puteți implementa mai multe interfețe într-o singură clasă. O interfață nu poate implementa o altă interfață. Cu toate acestea, o interfață poate extinde o clasă.
Diferența dintre implementări și extinde
Deși, Implements și Extends sunt două cuvinte cheie care oferă un mecanism de a moșteni atributele și comportamentul unei clase în limbajul de programare Java, ele sunt utilizate în două scopuri diferite. Cuvântul cheie Implements este folosit pentru o clasă pentru a implementa o anumită interfață, în timp ce cuvântul cheie Extends este folosit pentru ca o subclasă să se extindă dintr-o super clasă. Când o clasă implementează o interfață, acea clasă trebuie să implementeze toate metodele definite în interfață, dar atunci când o subclasă extinde o super clasă, poate sau nu suprascrie metodele incluse în clasa părinte. În cele din urmă, o altă diferență cheie între Implements și Extends este că, o clasă poate implementa mai multe interfețe, dar se poate extinde doar de la o super clasă în Java. În general, utilizarea Implements (interfețe) este considerată mai favorabilă în comparație cu utilizarea Extends (moștenire), din mai multe motive, cum ar fi flexibilitatea mai mare și capacitatea de a minimiza cuplarea. Prin urmare, în practică, programarea către o interfață este preferată în detrimentul extinderii de la clasele de bază.