Diagramă de comparație
Bazele comparației | Clasă | Interfață |
---|---|---|
De bază | O clasă este instanțiată pentru a crea obiecte. | O interfață nu poate fi niciodată instanțiată, deoarece metodele nu sunt capabile să efectueze nicio acțiune asupra invocării. |
cuvinte cheie | clasă | interfață |
Specificator de acces | Membrii unei clase pot fi privați, publici sau protejați. | Membrii unei interfețe sunt întotdeauna publici. |
metode | Metodele unei clase sunt definite pentru a efectua o acțiune specifică. | Metodele dintr-o interfață sunt pur abstracte. |
Punerea în aplicare a / Extinderea | O clasă poate implementa orice număr de interfață și poate extinde numai o singură clasă. | O interfață poate extinde mai multe interfețe, dar nu poate implementa nici o interfață. |
Constructor | O clasă poate avea constructori pentru a inițializa variabilele. | O interfață nu poate avea niciodată un constructor, deoarece nu există aproape nici o variabilă de inițializare. |
Definiția Class
O clasă este cel mai important aspect al programării Java fără clase pe care nu puteți implementa un program Java. O clasă creează tipuri de referință și aceste tipuri de referință sunt folosite pentru a crea obiecte. O clasă are o semnătură și un corp. Semnarea unei clase are numele clasei și informațiile care indică dacă clasa a moștenit o altă clasă. Corpul unei clase are câmpuri și metode care operează pe acele domenii. O clasă este creată utilizând o clasă de cuvinte cheie. Să ne vedem cum să declarăm o clasă.
class_name_name {/ * fields ... methods * /}
Atunci când o clasă este instanțiată, fiecare obiect creat conține o copie a câmpurilor și metodelor cu ele. Câmpurile și membrii declarați în interiorul unei clase pot fi statice sau nonstatice. Valoarea elementului static este constantă pentru fiecare obiect, în timp ce membrii non-statici sunt inițializați de fiecare obiect în mod diferit, în funcție de cerințele sale.
Membrii unei clase au specificatori de acces care determină vizibilitatea și accesibilitatea membrilor către utilizator sau la subclasele. Specificatorii de acces sunt publici, privați și protejați. O clasă poate fi moștenită de o altă clasă folosind specificatorul de acces care va decide vizibilitatea membrilor unei superclase (clasa moștenită) într-o subclasă (moștenirea unei clase). Astfel, clasa îndeplinește conceptul de ascundere și încapsulare de date în programarea orientată pe obiecte.
Definiția interfață
O interfață este, de asemenea, printre tipurile de referință definite în Java. Importanța unei interfețe este că, în Java, o clasă poate moșteni doar o singură clasă. Pentru a evita această restricție, designerii Java au introdus un concept de interfață. O interfață este asemănătoare sintactic cu o clasă, dar nu are o declarație în câmp și metodele din interiorul unei interfețe nu au nicio implementare. O interfață este declarată utilizând o interfață de cuvinte cheie. Să vedem declarația unei interfețe.
interfață nume_inferință {type var_name = value; introduceți metoda1 (lista de parametri); introduceți metoda 2 (lista de parametri); . . }
O interfață nu definește nici o metodă declarată în interiorul ei, deoarece îi lipsește în câmpuri să opereze. Doar pentru că orice metodă din interiorul unei interfețe nu efectuează nicio acțiune, o interfață nu poate fi niciodată instanțiată. Dacă o interfață are un membru al câmpului, acesta trebuie inițializat în momentul declarației. O interfață nu conține niciodată constructori, deoarece îi lipsește pe membrii câmpului să se inițieze. Deci, o interfață definește doar ceea ce o clasă trebuie să facă în loc de cum trebuie să facă.
O interfață create odată poate fi implementată de orice număr de clase folosind un cuvânt cheie implementat . Dar clasele care implementează o interfață trebuie să definească toate metodele din interiorul unei interfețe. O interfață poate moșteni și o altă interfață utilizând cuvântul cheie extins . Dacă o clasă implementează o interfață care extinde o altă interfață. Apoi, o clasă trebuie să definească metodele ambelor interfețe care apar într-un lanț. Metodele din interiorul unei interfețe trebuie să fie întotdeauna publice, deoarece trebuie să fie accesate de clasele care le implementează.
Diferențe cheie între clasă și interfață în Java
- O clasă poate fi instanțiată prin crearea obiectelor. O interfață nu este niciodată instanțiată, deoarece metodele declarate în interiorul unei interfețe sunt abstracte și nu efectuează nicio acțiune, astfel încât nu este utilă instantierea oricărei interfețe.
- O clasă este declarată utilizând o clasă de cuvinte cheie. În același mod, o interfață este creată utilizând o interfață de cuvinte cheie.
- Membrii unei clase pot avea specificatorul de acces cum ar fi public, privat, protejat. Dar membrii unei interfețe sunt întotdeauna publici, deoarece trebuie să fie accesați de clasele care le pun în aplicare.
- Metodele din cadrul unei clase sunt definite pentru a efectua o acțiune asupra câmpurilor declarate în clasă. Deoarece interfața lipsește în declararea câmpurilor, metodele din interiorul unei interfețe sunt pur abstracte.
- O clasă poate implementa orice număr de interfețe, dar poate extinde numai o singură clasă superioară. O interfață poate extinde orice număr de interfețe, dar nu poate implementa nici o interfață.
- O clasă a definit constructori în interiorul ei pentru a obține variabila inițializată. Dar, o interfață nu are constructori, deoarece nu există câmpuri care să fie inițializate. Câmpurile unei interfețe sunt inițializate numai la momentul declarației.
Concluzie:
Atât clasele, cât și interfețele au importanța lor. O clasă este folosită atunci când trebuie să definim modul în care se va realiza sarcina. O interfață este utilizată atunci când trebuie să știm ce sarcină trebuie făcută.