Clasa abstractă și interfața sunt utilizate mai ales pentru abstractizare, dar sunt foarte diferite. Ambele sunt componente Java de bază, dar folosesc propriul software. Ambii termeni pot fi sinonimi între ei, dar nu pot fi interschimbabili.

Există diferențe semnificative între cele două. Dacă metoda interfeței este abstractă în mod implicit, abstractul poate include atât metode abstracte, cât și abstracte. De la Java 8, interfețele au fost, de asemenea, orientări metodice și pot avea atât metode statice cât și standard în Java. Să le privim mai detaliat.

Diferența dintre clasa abstractă existentă și interfața Java

Ce este o clasă abstractă în Java?

În Java, clasa abstractă este o clasă care a fost declarată abstractă - poate avea sau nu metode abstracte. Acest lucru este foarte similar cu interfața Java, deoarece poate include execuția standard. Ca și programarea orientată pe obiecte, abstractizările în Java sunt implementate prin intermediul unor clase și interfețe abstracte. În Java, abstractizarea înseamnă a ascunde detalii nesemnificative de către utilizator, reducând în același timp complexitatea și concentrându-se doar pe detalii critice pentru a îmbunătăți eficiența. Cuvântul cheie „Rezumat” este utilizat în declarația clasei pentru a crea o clasă abstractă înainte de cuvântul cheie de clasă.

Clasa sumară poate avea sau nu metode abstracte (metode non-corporale), dar dacă există cel puțin o metodă de abstractizare, aceasta ar trebui declarată abstractă. Cu toate acestea, metodele abstracte pot fi utilizate doar în clasa abstractă, dar numai pentru comportamentul implicit. Metodele sumare pot avea modificatori de intrare, precum personal, public, static și protejat, în funcție de nivelul de vedere. Clasa de concluzie nu poate fi creată și nu oferă o abstracție de 100%, deoarece poate avea o metodă specifică.

Ce este o interfață?

Deși interfața arată ca o clasă, nu este. Deoarece Java nu acceptă moșteniri multiple, uneori interfața este potrivită pentru a oferi baza unei ierarhii de clasă. Interfața este un plan de clasă folosit pentru a realiza abstractizarea în Java. Conține metode abstracte și constante statice. Mai simplu spus, interfața este un set de metode abstracte utilizate pentru a defini comportamentul pe care ar trebui să-l efectueze o clasă. Spre deosebire de clasa actuală, interfața oferă o abstractitate completă în Java. Poate avea atât metode cât și variabile precum clasa, dar metodele declarate la interfață sunt abstracte.

Diferența dintre clasa abstractă existentă și interfața Java

  1. În Java, clasa abstractă și interfața „multi-moștenire” - Deși clasa și interfața abstractă sunt utilizate în principal pentru abstractizare, ele sunt destul de diferite unele de altele. Deși o clasă abstractă este o clasă, o interfață este o interfață. Aceasta înseamnă că interfața se poate extinde numai la o altă interfață Java, în timp ce clasa abstractă poate executa mai multe moșteniri în Java. Ei bine, Java nu acceptă moștenire multiplă, dar Java poate avea mai multe moșteniri. Clasa abstractă în Java și „Tip de metodă” a interfeței - Cele două diferențe principale sunt că interfața poate avea doar metode abstracte, iar clasa abstractă poate avea atât metode abstracte cât și non-abstracte. Dar, deoarece Java 8, interfața poate avea atât metode standard, cât și statice. În Java, clasa abstractă și „modificatorii de intrare” de clasă - clasa abstractă poate avea modificatori de acces deschisi, personali și protejați, dar metodele de interfață sunt deschise și abstracte. Nu puteți utiliza un alt modificator de intrare cu metodele de interfață. În Java, „implementați” clasa și interfața abstractă - clasa abstractă asigură implementarea interfeței. La rândul său, interfața nu poate oferi o implementare a clasei abstracte. În Java, clasa abstractă și „cuvântul cheie” al interfeței sunt folosite pentru a declara abstractul stilului clasei abstracte, dar interfețele sunt cu totul altfel de poveste; ele pot avea doar o masă, stabilitate finală statică și declarație de metodă. În Java, clasa abstractă și „utilizarea” interfeței - deși interfața este ideală pentru declararea tipurilor, clasa abstractă este cea mai potrivită pentru reutilizarea și evoluția codului. Interfața este ca o clasă, dar nu o clasă. În Java, clasa abstractă și „fiabilitatea” interfeței este o altă diferență importantă între clasa abstractă și interfață, aceasta din urmă fiind puțin mai rapidă decât prima, deoarece în Java, căutarea se face de obicei cu interfața înainte de a apela orice metodă anulată. 'este conectat. Clasa abstractă a clasei Javascript și interfața „Variabile finale” - variabilele declarate în interfață sunt finale în mod implicit, în timp ce clasa abstractă poate avea sau nu variabile non-finale.

Abstract Class and Interface Java: Un tabel de comparație

Rezumatul clasei și interfeței abstracte în Java

Atât clasa abstractă, cât și interfața sunt utilizate pentru abstract; cu toate acestea, au o pondere corectă a diferențelor. Principala diferență dintre ele este legată de metodele de abstractizare. Prima poate avea sau nu metode abstracte, iar a doua este clar abstractă. Clasa abstractă poate avea atât metode abstracte cât și non-abstracte. La rândul său, interfața poate avea doar metode abstracte, deci nu pot fi implementate, ceea ce înseamnă că interfața pur și simplu nu poate avea metode non-abstracte. Nu există o clasă abstractă care să interzică crearea de teme. La rândul său, interfața poate părea o clasă, dar nu.

REFERINȚE

  • Bloch, Iosua. Ghidul limbajului de programare Java. Boston: Addison-Wesley, 2001. Tipărire
  • Bloch, Iosua. Ghidul limbajului de programare Java. Boston: Addison-Wesley, 2001. Tipărire
  • Flanagan, David. Deci Java. Sebastopol: MeasurementReilly Media, 1996. Tipar
  • Eckert. Gândire în Java. Delhi: Pearson Education India, 2006. imprima
  • "Credit de imagine: https://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-abstract-class"