Implementează vs Extinde
Implementări și extensii sunt două cuvinte cheie găsite în limbajul de programare Java, care oferă un mijloc de transferare a funcționalității adăugate într-o nouă clasă. Cuvântul cheie Implements este utilizat î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 celorlalte limbaje de programare orientate pe obiecte precum C # și VB. NET, dar oferă sintaxă sau cuvinte cheie diferite pentru aplicarea acestor concepte. Acest articol se concentrează numai asupra cuvintelor cheie implementate și extinse 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 superclasă (sau o clasă părinte), acea subclasă va moșteni toate atributele și metodele superclasei. Subclasa poate în mod opțional să suprascrie comportamentul (să ofere funcționalități noi sau extinse metodelor) moștenit din clasa părinte. O subclasă nu poate extinde mai multe super-clase î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 se explică mai jos.
Instrumente
Implementează cuvântul cheie în limbajul de programare Java este utilizat pentru implementarea unei interfețe de către o clasă. O interfață în Java este un tip abstract care este utilizat pentru a specifica un contract care ar trebui implementat pe clase, care implementează acea interfață. De obicei, o interfață va conține doar semnături ale metodelor și declarații constante. Orice interfață care implementează o anumită interfață ar trebui să implementeze toate metodele definite în interfață sau ar trebui declarată ca o clasă abstractă. În Java, tipul unei referințe de obiect poate fi definit ca un tip de interfață. Dar acel obiect trebuie să fie nul sau trebuie să dețină un obiect al unei clase, care implementează acea interfață specială. 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 extensii
Deși, Implementări și Extinderi sunt două cuvinte cheie care oferă un mecanism de moștenire a atributelor și comportamentului unei clase în limbajul de programare Java, acestea sunt utilizate în două scopuri diferite. Cuvântul cheie Implements este utilizat pentru o clasă pentru a implementa o anumită interfață, în timp ce cuvântul cheie Extends este folosit pentru o subclasă care se extinde 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ă, aceasta poate sau nu să înlocuiască metodele incluse în clasa părinte. În cele din urmă, o altă diferență cheie între implementări și extensii este că, o clasă poate implementa mai multe interfețe, dar se poate extinde doar dintr-o super-clasă în Java. În general, utilizarea instrumentelor (interfețelor) este considerată mai favorabilă în comparație cu utilizarea extensiilor (moștenire),din mai multe motive, cum ar fi flexibilitate mai mare și capacitatea de a minimiza cuplarea. Prin urmare, în practică, programarea către o interfață este preferată decât extinderea din clasele de bază.