Cu toate că clasa abstractă nu poate fi instanțiată, se pot declara
variabile aparținând unor clase abstracte. Acestor variabile li se pot
da însa ca valori numai referințe către instanțe ale unor subclase
concrete. De exemplu, daca A este o clasă abstracta, iar B este o
subclasă concreta a clasei A, atunci este corectă declarația
A a1=new B();
Din punct de vedere conceptual, clasa abstractă modelează un
concept general, care trebuie apoi dezvoltat prin subclase. Subclasele
unei clase abstracte pot fi, la rândul lor, abstracte sau concrete. De
exemplu, clasa abstractă FiguraPlana poate avea ca subclase clasele
Cerc, Elipsa, Poligon etc.
Din punct de vedere al progrămarii, clasa abstractă conține
cel puțin o metodă abstractă, adică o metodă pentru care s-a declarat
numai antetul, fără să i se definească și corpul. O clasă poate să
conțină o metodă abstractă în mai multe moduri: Dacă apare o astfel de situație, iar clasa nu este declarată în mod explicit abstractă, se genereaza o eroare la compilare. |
Declararea unei metode abstracte:
- antetul metodei trebuie sa conțina modificatorul abstract;
- corpul metodei se înlocuiește prin caracterul ';' (punct și
virgulă).
Exemplu: În fișierul FiguriPlane.java sunt declarate clasa abstractă FiguraPlana și clasele instanțiabile Cerc și Patrat. Este declarată, de asemenea clasa-aplicație în care se testează aceste clase. |