Clasa abstractă vs moștenire
Clasa abstractă și Moștenirea sunt două concepte importante orientate pe obiecte găsite în multe limbaje de programare orientate pe obiecte, cum ar fi Java. Clasa abstractă poate fi considerată ca o versiune abstractă a unei clase obișnuite (concrete), în timp ce Moștenirea permite noilor clase să extindă alte clase. Clasa abstractă este o clasă care nu poate fi inițializată, dar poate fi extinsă. Deci, clasele abstracte sunt semnificative doar dacă limbajul de programare acceptă moștenirea. În Java, clasele Abstract sunt declarate folosind cuvântul cheie Abstract, în timp ce cuvântul cheie Extends este folosit pentru moștenirea dintr-o (super) clasă.
Ce este clasa abstractă?
De obicei, clasele abstracte, cunoscute și sub denumirea de clase de bază abstracte (ABC), nu pot fi instanțiate (o instanță a acelei clase nu poate fi creată). Deci, clasele abstracte sunt semnificative doar dacă limbajul de programare acceptă moștenirea (capacitatea de a crea subclase din extinderea unei clase). Clasele abstracte reprezintă de obicei un concept abstract sau o entitate cu implementare parțială sau fără implementare. Prin urmare, clasele abstracte acționează ca clase părinte din care sunt derivate clasele copil, astfel încât clasa copil va împărtăși caracteristicile incomplete ale clasei părinte și pot fi adăugate funcționalități pentru a le completa.
Clasele abstracte pot conține metode abstracte. Subclasele care extind o clasă abstractă pot implementa aceste metode abstracte (moștenite). Dacă clasa copil implementează toate aceste metode abstracte, este o clasă concretă. Dar dacă nu, clasa copil devine și o clasă Abstract. Toate acestea înseamnă că, atunci când programatorul nominalizează o clasă ca Abstract, ea spune că clasa va fi incompletă și va avea elemente care trebuie completate de subclasele moștenitoare. Acesta este un mod frumos de a crea un contract între doi programatori, ceea ce simplifică sarcinile în dezvoltarea de software. Programatorul, care scrie cod pentru a moșteni, trebuie să urmeze exact definițiile metodei (dar, desigur, poate avea propria sa implementare).
Ce este moștenirea?
Moștenirea este un concept orientat pe obiecte, care permite noilor clase să extindă alte clase. 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. De obicei, o subclasă nu poate extinde mai multe superclase (de exemplu, în Java). Prin urmare, nu puteți utiliza extensii pentru moștenirea multiplă. Pentru a avea mai multe moșteniri, trebuie să utilizați interfețe.
Care este diferența dintre clasa abstractă și moștenire?
Clasele abstracte reprezintă de obicei un concept abstract sau o entitate cu implementare parțială sau fără implementare. Moștenirea permite noilor clase să extindă alte clase. Deoarece clasele abstracte nu pot fi instanțiate, trebuie să utilizați conceptul de moștenire pentru a folosi clasele abstracte. În caz contrar, o clasă Abstract nu are niciun folos. Clasele abstracte pot conține metode abstracte, iar atunci când clasa este extinsă, toate metodele (abstracte și concrete) sunt moștenite. Clasa moștenită poate implementa oricare sau toate metodele. Dacă toate metodele Abstract nu sunt implementate, atunci acea clasă devine și o clasă Abstract. O clasă nu poate moșteni de la mai multe clase abstracte (aceasta nu este o calitate a claselor abstracte în sine, ci mai degrabă o restricție de moștenire).
Postări similare:
Diferența dintre clasa abstractă și clasa concretă
Diferența dintre virtual și abstract
Diferența dintre clasa abstractă și interfață
Diferența dintre implementări și extinde
Diferența dintre grafic și arbore
Filed Under: Programare Etichetat cu: ABC, abstract, Clase de bază abstracte, Clasă abstractă, Clase abstracte, Cuvânt cheie abstract, Metode abstracte, clasă concretă, Cuvânt cheie Extinde, Moștenire, Clasă de moștenire, clasă moștenită, Java, moștenire multiplă, concepte orientate obiect, clasă obișnuită, super clasă
Despre autor: Indika
Indika, BSc. Ing, MSECE Computer Engineering, PhD. Informatică, este profesor asistent și are interese de cercetare în domeniile bioinformatică, biologie computațională și procesare biomedicală a limbajului natural.
Comentarii
-
Jason spune
30 august 2017 la 13:25
Vă mulțumim că ați explicat diferența. Toate întrebările mele au fost rezolvate prin aceasta.
Răspuns
-
Aus spune
10 mai 2019 la 15:04
cel mai bun răspuns de pe web, profesorul nu explică nimic și nu are sens, ton mono mf. Așa explicați conceptele.
Răspuns
Lăsați un răspuns Anulați răspunsul
Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate cu
Comentariu
Nume
Site web