Cuprins
Deși ambele structuri pot părea similare, deoarece forțează clasele care le folosesc să creeze metodele pe care le au și să le folosească astfel încât să poată fi valabile, au diferențe cheie între ele, ceea ce ne poate oferi mai multă lumină asupra modului în care le putem folosi .Diferențele, deși sunt subtile, ne permit să folosim ambele structuri chiar și în combinație, astfel putem realiza o ordine mai mare în proiectul nostru și putem crea aplicații care ne permit să reproducem mai bine obiectele lumii reale într-un format digital.
RestricțiiPrincipala diferență pe care o vedem între clase abstracte și interfețe este că prima este o clasă și a doua nu, chiar dacă interfață are o structură similară se confruntă cu restricții care nu se găsesc într-un clasa abstractă.
Variabile clasa abstractă nu are nicio restricție privind utilizarea variabilelor, totuși interfață dacă are, de fapt, toate variabilele pe care le vom folosi trebuie să fie public, static sau final.
În acest caz constructor din clasa abstractă trebuie invocată prin intermediul subclaselor, ceea ce nu permite posibilitatea instanțierii acestuia prin operator nou.
În cazul în care interfață, acest lucru nu poate avea constructori deoarece nu este o clasă, ceea ce ne face să renunțăm și la crearea instanțelor cu operatorul nou.
MetodeÎntr-o interfață metodele trebuie să fie abstract public Pe de altă parte, în clasa abstractă putem plasa orice tip de metodă fără probleme, ceea ce face încă o diferență pentru noi.
Un alt punct pe care trebuie să îl luăm în considerare este modul de a face moștenirea și implementarea pe care le putem realiza cu aceste două structuri Java, știm asta când o facem moştenire Într-o clasă, putem moșteni doar dintr-o clasă superioară, adică dacă dorim să moștenim din două clase diferite, trebuie să creăm ca efect de cascadă, unde o primă clasă moștenește din clasa superioară și apoi o altă clasă moștenește din aceasta pentru a obține funcționalitatea sa și cea a clasei părinte.
În interfețe Această problemă nu apare, de fapt putem moșteni direct de la mai multe interfețe, deci dacă dorim să obținem metodele lor o putem face fără probleme.
În cazul în care implementarea unei interfețe într-o clasă abstractă dacă avem mai multă libertate, în acest caz putem implementa mai multe interfețe fără niciun fel de restricție în acest caz, ceea ce ne oferă posibilitatea de a crea o interfață părinte mai complexă, ca să spunem așa. Lucrul important aici este să știți și să luați în considerare faptul că o interfață nu este o clasă și, prin urmare, nu poate moșteni de la una, poate face doar moștenirea de la alte interfețe.
Cu aceasta terminăm acest tutorial, am văzut diferențele de restricții și implementare în programele noastre ale acestor două structuri din JavaDeși ambele servesc la modelarea și definirea comportamentelor, fiecare are propriul spațiu, așa că, atunci când le cunoaștem mai bine, vom putea decide pe care să îl folosim în programele noastre realizate cu acest limbaj.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv