Clasă abstractă în Java – cu exemple
Publicat: 2022-06-24Abstracția datelor este tehnica de a ascunde anumite informații și de a afișa doar detaliile necesare utilizatorilor. Această abstractizare a datelor poate fi realizată în două moduri, clasă abstractă și interfețe.
Ce este o clasă abstractă în Java?
O clasă abstractă în Java este o clasă restricționată încapsulată sau declarată cu cuvântul cheie abstract. O clasă abstractă poate avea atât metode abstracte, cât și non-abstracte. Nu poate fi folosit pentru crearea unui obiect. Pentru a accesa o clasă abstractă, aceasta trebuie să fie moștenită de la o altă clasă.
Învață cursuri de dezvoltare software online de la cele mai bune universități din lume. Câștigați programe Executive PG, programe avansate de certificat sau programe de master pentru a vă accelera cariera.
Regulile clasei abstracte
- O clasă abstractă poate fi declarată numai în cadrul unui cuvânt cheie abstract.
- Poate conține atât metode abstracte, cât și non-abstracte.
- Poate avea și metode finale.
- Nu poate fi niciodată instanțiat.
- Pot fi utilizați și constructori și metode statice.
Exemplu de clasă abstractă:
clasa abstractă B{}
O metodă abstractă în Java
Această metodă poate fi utilizată numai într-o clasă abstractă și nu conține un corp. Corpul va fi furnizat de subclasa moștenită.
Un exemplu de metodă abstractă este:
abstract void printStatus(); //fără corp și abstract metodei
Exemplu de clasă Java Abstract cu o metodă abstractă
În exemplul următor, mașina este o clasă abstractă cu o singură metodă abstractă, run. Implementarea este asigurată de clasa, Audi.
mașină de clasă abstractă{
abstract void run();
}
clasa Audi4 extinde bicicleta{
void run(){System.out.println(„funcționează bine”);}
public static void main(String args[]){
Car obj = nou Audi4();
obj.run();
}
}
Ieșirea programului va fi „funcționează bine”.
În cele mai multe cazuri, clasa de implementare rămâne necunoscută (abstracția datelor), iar un obiect al clasei de implementare este obținut prin metoda fabricii.
O metodă care returnează instanța clasei se numește metoda fabrică.
Exemplu de clasă abstractă Java cu metoda Factory
În exemplul următor, crearea instanței unei clase pătrate, este inițiată metoda draw() a clasei Square.
clasa abstractă Formă{
abstract void draw();
}
//În scenariul real, implementarea este furnizată de alții, adică necunoscută de utilizatorul final
clasa Pătrat extinde Forma{
void draw(){System.out.println(„desen pătrat”);}
}
clasa Cercul 1 extinde Forma{
void draw(){System.out.println(„desen hexagon”);}
}
//În scenariul real, metoda este apelată de programator sau utilizator
clasa TestAbstraction1{
public static void main(String args[]){
Forma s=new Circle1();//Într-un scenariu real, obiectul este furnizat prin metoda, de exemplu, metoda getShape()
s.draw();
}
}
Rezultatul programului de mai sus va fi „desen hexagon”.
Cursuri populare și articole despre inginerie software
Programe populare | |||
Program Executive PG în Dezvoltare Software - IIIT B | Programul de Certificat Blockchain - PURDUE | Programul de certificate de securitate cibernetică - PURDUE | MSC în Informatică - IIIT B |
Alte articole populare | |||
Salariu inginer cloud în SUA 2021-22 | Salariu AWS Solution Architect în SUA | Salariu pentru dezvoltatori backend în SUA | Salariu pentru Dezvoltator Front End în SUA |
Salariu web developer in SUA | Întrebări de interviu Scrum Master în 2022 | Cum să începi o carieră în securitatea cibernetică în 2022? | Opțiuni de carieră în SUA pentru studenții la inginerie |
Când ar trebui utilizată o clasă abstractă în Java?
Mai jos sunt câteva scenarii în care poate fi utilizată o clasă abstractă:
- Când încercați să introduceți conceptul de moștenire în cod (pentru a partaja codul între diferite clase relevante) prin utilizarea metodelor comune ale unei clase de bază.
- Când cerințele sunt specifice și detaliile de implementare sunt incomplete.
- Când clasele utilizate pentru extinderea unei clase abstracte au mai multe câmpuri comune sau metode care necesită modificatori non-publici.
- Când sunt utilizate metode non-finale sau non-statice pentru a modifica starea obiectului.
Când să folosiți o interfață în Java pentru abstracție?
Următoarele scenarii necesită o interfață Java pentru a realiza abstractizarea:
- Pentru a susține funcționalitățile moștenirilor multiple
- Pentru a obține o cuplare liberă
Declararea unei interfețe
Interfața ar trebui să fie declarată numai prin cuvântul cheie interfață. Acest lucru are ca rezultat o abstractizare totală, astfel încât toate metodele de moștenire sunt declarate într-un corp gol și toate câmpurile devin publice, statice și finale ca implicite. Clasa care implementează interfața ar trebui să implementeze toate metodele care sunt declarate în interfață.
Exemplu de interfață Java
În exemplul de mai jos, interfața imprimabilă are o singură metodă a cărei implementare este furnizată în clasa A6.
interfata imprimabila{
void print();
}
unelte de clasa A6 imprimabile{
public void print(){System.out.println(„Bun venit”);}
public static void main(String args[]){
A6 obj = nou A6();
obj.print();
}
}
Ieșirea programului va fi
Bine ati venit.
Exemplul 2:
interfață Bank{
rata variabilă a interesului();
}
clasa BOI implementează Bank{
public float rateOfInterest(){return 8.5f;}
}
clasa CUB implementează Banca{
public float rateOfInterest(){return 9.2f;}
}
clasa TestInterface2{
public static void main(String[] args){
Banca b=BOI nou();
System.out.println(„ROI: „+b.rateOfInterest());
}}
Ieșirea programului de mai sus va fi
ROI: 8,5
Avantajele abstracției în Java
- Cuplare liberă: Abstracția în Java ajută la cuplarea liberă prin atenuarea entităților dependente la un nivel exponențial.
- Coduri reutilizabile: Clasa abstractă în Java este un economisitor excelent de timp. Metoda abstractă poate fi apelată numai atunci când este necesar. Clasa abstractă evită rescrierea acelorași coduri, economisind astfel timp.
- Protecția datelor: Abstracția datelor în Java ajută la ascunderea de către utilizatori a detaliilor sensibile ale codului. Ajută la ascunderea caracteristicilor importante ale proiectului și la afișarea doar a componentelor esențiale.
- Rezolvarea mai rapidă a problemelor: cu ajutorul rezolvării dinamice a metodei, diferite probleme și complicații pot fi rezolvate prin angajarea unei singure metode abstracte.
Pentru a afla mai multe despre abstracția datelor în Java și dezvoltarea de software, înscrieți-vă la Programul Executive Post-universitar în Dezvoltare software oferit de IIIT Bangalore în asociere cu upGrad.
Programul Executive Postuniversitar în Dezvoltare Software este un program online de 13 luni. Curriculumul este special conceput pentru profesioniștii care lucrează pentru a se concentra pe învățare fără a renunța la locurile de muncă. Curriculumul include proiecte bazate pe industrie și studii de caz. În plus, programul are peste 10 sesiuni live de la experții din industrie pentru a ajuta candidații să rămână la curent cu tendințele actuale din industrie.
Putem avea o clasă abstractă fără vreo metodă abstractă?
Da. Este posibil să existe o clasă abstractă fără vreo metodă abstractă, deoarece ambele sunt tehnici independente. Declararea unei clase abstracte implică faptul că aceasta nu poate fi instanțiată singură și poate fi făcută doar cu ajutorul unei subclase. Definirea unei metode abstracte înseamnă că metoda este definită sau conținută în subclasă.
De ce este esențială abstracția datelor?
Da. Este posibil să existe o clasă abstractă fără vreo metodă abstractă, deoarece ambele sunt tehnici independente. Declararea unei clase abstracte implică faptul că aceasta nu poate fi instanțiată singură și poate fi făcută doar cu ajutorul unei subclase. Definirea unei metode abstracte înseamnă că metoda este definită sau cuprinsă în subclasă.
Prin ce este diferită abstracția datelor de abstracția controlului?
Abstracția datelor este procesul de creare a unor tipuri de date complexe și complicate, dar evidențiind sau dezvăluind doar detalii esențiale. Abstracția controlului este procesul care se ocupă de partea software a abstracției. Este procesul în care programul este defalcat sau simplificat, iar detaliile nedorite ale execuțiilor programului sunt ascunse. Abstracția controlului este folosită în primul rând pentru a genera noi funcționalități și pentru a combina diverse instrucțiuni de control într-o singură entitate.