În acest articol
Modificatorul abstract specifică faptul că elementul modificat are o implementare lipsă sau incompletă. Modificatorul abstract poate fi folosit cu clase, metode, proprietăți, indexatoare și evenimente. Modificatorul abstract din definiția clasei vă permite să specificați că clasa poate fi doar o clasă de bază pentru alte clase. Membrii marcați ca abstract sau incluși într-o clasă abstractă trebuie să fie implementați de clase derivate dintr-o clasă abstractă.
În acest exemplu, clasa Square trebuie să ofere o implementare a zonei. deoarece derivă din clasa ShapesClass.
Clasele abstracte oferă următoarele opțiuni:
Nu puteți crea instanțe ale unei clase abstracte.
O clasă abstractă poate conține metode și metode de acces abstract.
Nu puteți modifica clasa abstractă cu modificatorul sigilat, deoarece cei doi modificatori au valori exclusive. Modificatorul sigilat interzice moștenirea claselor, în timp ce modificatorul abstract indică faptul că clasa trebuie să aibă clase derivate.
O clasă non-abstractă derivată dintr-o clasă abstractă trebuie să includă implementările reale ale tuturor metodelor abstracte moștenite și ale metodelor de acces.
Metodele abstracte oferă următoarele opțiuni:
Metoda abstractă este implicit o metodă virtuală.
Implementarea este asigurată prin suprascriere. care este un membru al clasei non-abstract.
Utilizarea modificatorului abstract într-o proprietate statică nu este validă.
O clasă abstractă trebuie să furnizeze o implementare pentru toți membrii interfeței.
O clasă abstractă care implementează o interfață poate hartă metode de interfață la metode abstracte. exemplu:
În exemplul următor, clasa DerivedClass este derivată din clasa abstractă BaseClass. Clasa abstractă conține o metodă abstractă, AbstractMethod. și două proprietăți abstracte, X și Y.
În exemplul anterior, când încercați să creați o instanță a unei clase abstracte utilizând un operator al formularului:
apare un mesaj de eroare care indică faptul că compilatorul nu poate crea o instanță a clasei abstracte BaseClass.
C # Specificarea limbii
Pentru mai multe informații, consultați specificația C #. Specificația de limbă este o sursă prescriptivă de informații despre sintaxa și utilizarea limbajului C #.