IV. Limbajul JAVA – Interfete.Exceptii
1. Clase abstracte
Clase abstracte –clase care nu pot fi instantiate
Au rol doar in organizarea modelului
Declarate cu modificatorul abstract
Pot sa contina si metode abstracte si ne-abstracte
Metodele abstracte –doar declaratia, fara implementare
Toate clasele Java sunt incluse in aceiasi ierarhie de clase
Clasa “suprema”este clasa Object
Daca o clasa nu specifica mostenirea unei alte clase (prin extends), implicit se considera ca mosteneste clasa Object
Clasa Object contine doar cateva metode esentiale precum: clone(), equal(), toString() etc.
Exemplu: intr-o ierarhie de figuri geometrice:
public abstract class Figura { protected intx, y; public abstract doublearia( ); public voidmuta(int x0, int y0 ) { x = x0; y = y0; } }
2. Interfete
Interfata–o clasa abstracta care are doar metode abstracte (=> nu poate fi instantiata)
Toate metodele continute –implicit abstracte –nu pot fi statice si sunt implicit publice (nu vor aparea explicit abstract si public la definire)
Toate atributele continute –constante de clasa (“static final”), fara a preciza “static final”
Pot fi utilizate pentru a suplini lipsa mostenirii multiple
Specifica metodele suportate de clasele care o implementeaza
Interfetele permit o functionalitate comuna intre clase din ierarhii diferite
O clasa poate implementa mai multe interfete simultan
Daca o clasa implementeaza o interfata, ea tebuie sa implementeze toate metodele acelei interfete
O interfata poate extinde oricate alte interfete dar nu poate redefinii metodele acestora
Sintaxa de declarare a unei interfete este:
interfacenume_interfata [extendsinterfete] { // declaratii de atribute “static final ” // declaratii de metode (fara implementare) }
Sintaxa de implementare a unei interfete:
classnume_clasa [extendsclasa] [implementsinterfete] { // declaratii de atribute // declaratii de metode (fara implementare) }
Testul de conformitate cu o interfata se poate face prin operatorul instanceof(la fel ca si in cazul claselor).
[…] Limbajul JAVA – Interfete.Exceptii […]