Cele patru principii fundamentale ale programarii orientate pe obiecte sunt: incapsularea, mostenirea, polimorfismul si abstractizarea. Incapsularea reprezinta capacitatea de a oculta datele utilizand un set de metode publice si private; mostenirea permite crearea de noi clase bazate pe o clasa existenta prin mostenirea tuturor atributele ei; polimorfismul permite definirea mai multor metode cu acelasi nume si setul de argumente, dar un comportament diferit; abstractizarea este o metoda prin care se defineste o interfata in care sunt specificate metodele si proprietatile unei clase fara a Specifica cum sunt implementate.