Clasă abstractă în Java și metode [cu exemple]
Publicat: 2021-06-18Următorul articol va discuta despre proprietățile abstractizării în Java și cum ar putea fi obținută prin clase abstracte și metode abstracte. Vom explora caracteristicile claselor abstracte și interfețelor în Java.
Cuprins
Abstracția
Unul dintre conceptele importante ale Java este abstractizarea. Este proprietatea prin care utilizatorul este afișat doar cu detaliile importante ale unui program. Toate părțile neesențiale sunt păstrate ascunse. Procesul poate fi explicat prin exemplul unui e-mail. Expeditorii trimit un e-mail care este livrat destinatarului. Singura informație cunoscută de expeditor este că e-mailul a fost trimis. Procesul de fundal al trimiterii e-mailului este ascuns utilizatorilor. Similar este procesul din programarea orientată pe obiecte (OOP) în care elementele esențiale sunt afișate utilizatorului, în timp ce părțile neesențiale sunt ascunse. Utilizatorul nu are informații despre procesul de implementare, ci doar funcționalitatea este cunoscută. Acest mecanism este cunoscut sub numele de abstractizare în care sunt afișate doar caracteristicile esențiale ale unui obiect, ignorând celelalte caracteristici.
În Java, abstracția se realizează prin clasele și interfețele abstracte.
Clasă abstractă în Java
Cuvântul cheie „abstract” este folosit pentru clase și metode abstracte în Java. Clasa abstractă are cuvântul cheie abstract în declarația sa.
Sintaxa unei clase abstracte Java este:
clasa abstractă class_name
{
public abstract void the_abstractMethod();
public void the_normalMethod()
{
#corpul metodei
}
}
Sintaxa de mai sus arată că atât metodele normale, cât și cele abstracte pot fi conținute într-o clasă abstractă.
Câteva proprietăți ale claselor abstracte sunt:
- Metodele abstracte pot fi prezente sau nu în clasa abstractă Java .
- Prezența a cel puțin unei metode abstracte într-o clasă face din clasă o clasă abstractă.
- O clasă abstractă nu poate avea niciun obiect și, prin urmare, nu poate fi instanțiată direct.
- O clasă abstractă poate fi folosită numai dacă este moștenită de la o altă clasă și implementează metodele abstracte.
- Implementările adecvate ale metodelor abstracte sunt necesare în timp ce se moștenește o clasă abstractă.
- Atât metodele obișnuite, cât și cele abstracte pot fi prezente într-o clasă abstractă Java .
- Constructorii parametrizați pot fi prezenți într-o clasă abstractă. De asemenea, o clasă abstractă conține întotdeauna un constructor implicit.
Metode abstracte
Metodele abstracte sunt acele tipuri de metode care nu necesită implementare pentru declararea lor. Aceste metode nu au un corp, ceea ce înseamnă că nu există implementare. Câteva proprietăți ale unei metode abstracte sunt:
- O metodă abstractă în Java este declarată prin cuvântul cheie „abstract”.
- În timp ce declarația metodei abstracte, cuvântul cheie abstract trebuie plasat înaintea numelui metodei.
- Nu există corp într-o metodă abstractă, este prezentă doar semnătura metodei.
- O metodă abstractă în Java nu are acolade, dar sfârșitul metodei va avea punct și virgulă (;)
Metoda dublă abstractă (dublu n1, dublu n2);
- Orice clasă care conține o metodă abstractă ar trebui să fie declarată ca o clasă abstractă. Deși opusul ar putea să nu fie adevărat, adică nu este necesar ca o clasă abstractă să aibă o metodă abstractă.
- Moștenirea unei clase abstracte de către o clasă obișnuită necesită implementarea tuturor metodelor abstracte din clasa părinte.
Exemplu de metodă abstractă
public abstract class Car
{
model String privat;
culoare privată șir;
private int year;
public abstract double computePrice();
}
Dacă clasele derivate nu implementează metodele abstracte, ar rezulta clase abstracte care nu pot fi instanțiate.
Câteva nu pot fi folosite cu cuvântul cheie abstract în Java.
- final
- nativ abstract
- static abstract
- abstract privat
- abstract sincronizat
- strictfp abstract
Un cod care arată utilizarea unei metode abstracte în Java este prezentat mai jos.
Sursă
Ieșirea codului este:
Interfețe Java
În afară de clasele abstracte și metodele abstracte, Java folosește interfețe pentru a realiza abstractizarea. Când metodele înrudite sunt grupate împreună în corpuri goale, atunci se numește interfață. Interfața este similară cu o clasă abstractă, deoarece este gruparea metodelor abstracte. Când o clasă implementează interfața, toate metodele abstracte din interfață sunt moștenite. Interfața poate conține și metode implicite, constante și metode statice. Corpurile metodei sunt prezente doar ale metodelor implicite și ale metodelor statice. O moștenire și o clasă pot fi scrise într-un mod similar, dar o clasă poate descrie atributele și comportamentul unui obiect. În timp ce în cazul unei interfețe sunt prezente doar acele comportamente ale unui obiect, acestea sunt implementate de clasă.
O clasă trebuie să definească toate metodele interfeței pe care le implementează. Numai pentru o clasă abstractă, metodele nu trebuie să fie definite de clasă.
O interfață este similară cu o clasă abstractă Java în următoarele moduri:
- Într-o interfață poate fi conținut orice număr de metode.
- Extensia .java este folosită pentru scrierea unei interfețe într-un fișier. Numele fișierului trebuie să se potrivească cu numele interfeței.
- Fișierul .class conține codul de octeți al unei interfețe.
- Interfețele apar în pachete. Fișierul bytecode al unei interfețe este prezent într-un director cu același nume ca și numele pachetului.
O interfață este diferită de o clasă abstractă Java în următoarele moduri:
- Interfața nu poate fi instanțiată.
- Nu există constructori într-o interfață.
- Interfața conține doar metode abstracte.
- Nu există câmpuri de instanță într-o interfață. Un câmp trebuie declarat atât ca static, cât și ca final dacă trebuie să apară într-o interfață.
- Doar o clasă poate implementa o interfață, dar nu poate fi extinsă.
- O interfață poate extinde mai multe interfețe.
Învață cursuri de software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.
Proprietățile unei interfețe
- Nu este nevoie să declarați o interfață ca abstractă prin cuvântul cheie abstract , deoarece este implicit abstractă.
- Cuvintele cheie abstracte nu sunt necesare pentru a declara metodele ca fiind abstracte, deoarece sunt implicit abstracte.
- Toate metodele dintr-o interfață sunt implicit publice.
Cum se declară o interfață?
Cuvântul cheie „interfață” este folosit pentru a declara o interfață. Abstracția totală este oferită prin utilizarea unei interfețe. În mod implicit, toate metodele dintr-o interfață sunt abstracte și publice. Aceasta înseamnă că nu există nicio metodă într-o interfață și toate câmpurile sunt statice, publice și finale.
Sintaxa unei interfețe:
Numele_interfeței_interfeței {
# declara câmpuri
# declara metode abstracte
}
De exemplu, interfața Player
{
varsta int final = 40;
int calc();
}
Cum se implementează o interfață?
Pentru a implementa o interfață este folosit cuvântul cheie „ implemente” . Mai mult de o interfață poate fi implementată de o clasă. În astfel de cazuri, cuvântul cheie „ implemente” este urmat de o listă de interfețe separate prin virgulă. Cuvântul cheie este folosit în declarația de clasă.
Un exemplu de implementare a interfeței este prezentat mai jos:
clasa Maruti utilaje Car
Un exemplu de cod care arată implementarea unei interfețe în Java este prezentat mai jos.
Sursă
Codul generează următoarea ieșire:
Un cod care aplică implementarea mai multor interfețe este prezentat mai jos.
Sursă
Codul generează următoarea ieșire:
Un text...
Alt text...
De ce se folosește interfața?
- Interfețele sunt folosite pentru a realiza abstractizarea totală.
- Moștenirile multiple în Java pot fi obținute prin utilizarea moștenirii, deoarece Java nu acceptă moșteniri multiple.
- Cuplarea liberă poate fi realizată prin utilizarea unei interfețe.
- Prin utilizarea implementării, abstracția în java poate fi realizată.
Deși abstracția în Java poate fi realizată prin intermediul clasei abstracte Java, interfețele sunt utilizate deoarece conțin variabile finale, publice și statice. Totuși, variabilele non-finale pot fi prezente într-o clasă abstractă.
Dacă atât interfața Java, cât și clasa abstractă Java sunt utilizate pentru a realiza abstractizarea, când ar trebui să fie utilizate o interfață și o clasă abstractă?
- O clasă abstractă este utilizată atunci când utilizatorul trebuie să definească un șablon pentru un grup de subclase.
- O interfață este utilizată atunci când un utilizator trebuie să definească un rol pentru alte clase.
Câteva avantaje ale abstractizării sunt:
- Complexitatea programului este redusă.
- Există șanse mai mici de duplicare a codului, crescând reutilizabilitatea.
- Securitatea unui program este crescută prin utilizarea abstracției, deoarece doar câteva detalii sunt furnizate utilizatorului.
Concluzie
Articolul a discutat despre conceptul detaliat al abstractizării în Java, care este o tehnică de ascundere a informațiilor neesențiale de la utilizator. În Java, abstracția se realizează prin clase și interfețe abstracte. O abstracție 100% este oferită de interfețe, în timp ce o abstracție parțială este furnizată de clasele abstracte. Articolul a menționat în continuare când trebuie utilizată o interfață și când ar trebui utilizată o clasă abstractă. De asemenea, a enumerat asemănările unei interfețe cu cea a clasei abstracte Java și, de asemenea, diferențele. Fără cunoașterea necesară a ambelor concepte, vor avea ca rezultat un cod plin de defecte.
Dacă mai sunteți interesat să aflați mai multe și să implementați conceptele în problemele din viața reală, puteți consulta cursul de Master în Informatică oferit de upGrad și IIIT-Bangalore, recunoscut de Universitatea John Moores din Liverpool . Cursul este conceput pentru profesioniști la nivel de intrare (21-45 de ani) care oferă peste 500 de ore de formare de la experți de top din industrie și facultăți de inginerie software. Mai multe detalii despre curs pot fi verificate pe pagina oficială a upGrad.