Documente Academic
Documente Profesional
Documente Cultură
Tehnologii Java
Lucrare de laborator Nr.5
Chișinău 2022
Clase abstracte și interfețe
Ce este o interfață în Java
O interfață în Java este definită ca un tip abstract care specifică comportamentul
clasei. O interfață este un fel de protocol care stabilește reguli privind modul în care ar
trebui să se comporte o anumită clasă.
O interfață în Java poate conține metode abstracte și constante statice. În mod implicit,
toate metodele din interfață sunt publice și abstracte.
Exemplul de mai sus definește o „formă” a interfeței care are o variabilă statică și o
metodă abstractă „calculateArea ()”.
O interfață este o entitate care are ca corp doar metode abstracte. Poate avea, de
asemenea, variabile statice finale.
Deci, la fel ca clasa, o interfață poate avea și metode și variabile, dar rețineți că
metodele sunt abstracte (fără implementare) și variabilele sunt statice.
Clasele abstracte sunt utilizate pentru a declara caracteristici comune unor subclase. O
clasă abstractă nu poate fi instanțiată. Ea poate fi utilizată numai ca și superclasa
pentru alte clase care extind clasa abstractă. Clasele abstracte sunt declarate prin
intermediul modificatorului abstract.
O clasă abstracta poate conține atribute, care descriu caracteristicile clasei, și metode,
care descriu acțiunile care pot fi desfășurate de clasă. De asemenea, o clasă abstractă
poate include metode care nu sunt implementate. Aceste metode dețin doar declarație
și poartă numele de metode abstracte. Ca și în cazul claselor abstracte, metodele
abstracte sunt insoțite în declarația lor de modificatorul abstract.
Daca o clasă conține metode abstracte, atunci ea trebuie sa fie declarată abstractă.
Clase abstracte vs Interfețe
Folosim o clasă abstractă atunci când vrem:
Metode abstracte
Pentru a exprima faptul că o metodă este abstractă (adică se declară doar interfaţa ei, nu și implementarea),
Java folosește cuvântul cheie abstract:
O clasă care conţine metode abstracte este numită clasă abstractă. Dacă o clasă are una sau mai multe
metode abstracte atunci ea trebuie să conţină în definiţie cuvântul abstract.
Exemplu:
...
}
Deoarece o clasă abstractă este incompletă (există metode care nu sunt definite), crearea unui obiect de tipul
clasei este împiedicată de compilator.
Interfeţe
Interfeţele duc conceptul abstract un pas mai departe. Se poate considera că o interfaţă este o clasă abstractă
pură: permite programatorului să stabilească o “formă” pentru o clasă (numele metodelor, lista de argumente,
valori întoarse), dar fară nicio implementare. O interfaţă poate conţine câmpuri dar acestea sunt în mod
implicit static și final. Metodele declarate în interfață sunt în mod implicit public.
Interfaţa este folosită pentru a descrie un contract între clase: o clasă care implementează o interfaţă va
implementa metodele definite în interfaţă. Astfel orice cod care folosește o anumită interfaţă știe ce metode
pot fi apelate pentru aceasta.
Pentru a crea o interfaţă folosim cuvântul cheie interface în loc de class. La fel ca în cazul claselor, interfaţa
poate fi declarată public doar dacă este definită într-un fișier cu același nume ca cel pe care îl dăm acesteia.
Dacă o interfaţă nu este declarată public atunci specificatorul ei de acces este package-private. Pentru a defini
o clasă care este conformă cu o interfaţă anume folosim cuvântul cheie implements. Această relaţie este
asemănătoare cu moștenirea, cu diferenţa că nu se moștenește comportament, ci doar “interfaţa”. Pentru a
defini o interfaţă care moștenește altă interfaţă folosim cuvântul cheie extends. Dupa ce o interfaţă a fost
implementată, acea implementare devine o clasă obișnuită care poate fi extinsă prin moștenire.
}
}
package com.company;
}
package com.company;
@Override
public void pret_euro() {
System.out.println(supr*pret_metru2/20.027);
}
}
package com.company;
}
@Override
public void pret_euro() {
System.out.println(supr*pret_metru2/20.027);
}
}
package com.company;
Concluzie:
În timpul efectuării lucrării de laborator nr. 5 „ Clase abstracte, interfețe și polimorfism ”
am efectuat și am analizat următoarele aspect:
Astfel consider că am realizat scopul Lucrării de laborator nr. 5, am creat o clasă abstractă care
moștenește două clase, am declarat metode abstracte și le-am realizat metoda abstractă în clasele care
extind clasa abstractă. Am lucrat cu polimorfizmul Pret_Apartamente a1= new O_odaie();, variabila de
tip Pret_Apartament se creează un obiect din clasa O_odaie.
Bibliografie