Arhive etichetă: PHP

Clase abstracte

Articol in lucru…

O clasa abstracta este o clasa schelet care poate fi utilizata doar pentru a scrie noi clase ce o extind si niciodata nu poate fi invocata in initializarea directa unui obiect.

O clasa abstracta poate contine una sau mai multe metode abstracte, ale carui corp nu va fi declarat. Aceasta va obliga clasa care extinde clasa abstracta sa declare toate metodele abstracte definite. Exceptie o fac doar clasele abstracte ce extind clase abstracte, dar o clasa normala va fi obligata sa declare toate metodele abstracte mostenite.

Utilizarea claselor abstracte poate fi necesara in diverse cazuri:

  • obligatia de a construi o clasa ce va implementa obligatoriu metode asteptate
  • obligatia de a porni de la acest schelet ca baza

Reguli ce privesc clasele abstracte:

  • Orice clasa care contine o metoda abstracta, trebuie implicit declarata abstracta
  • Orice metoda declarata abstracta, in implementare trebuie sa contina acelasi nevel de acces sau mai slab; cand metoda abstracta e declarata protejata, ea poate fi implementata ca protejata sau publica, dar nu privata; o metoda abstracta declarata publica, obligatoriu va fi declarata public
  • O clasa abstracta nu poate fi initializata ca obiect
  • Orice metoda abstracta nu poate contine corp de functie
  • Daca declari o clasa extinzand o clasa abstracta, esti obligat sa declari clasa tot abstracta

Exemplu:

Cand nu este ideala utilizarea unei clase abstracte, alternativa ei este Interfata, ce o vom discuta ulterior.