Principalele caracteristici ale paradigmelor de programare orientate obiect includ: encapsularea, mostenirea, polimorfismul si abstractizarea. Encapsularea se refera la impachetarea datelor si logicii in clasa, mostenirea permite definirea unei noi clase bazate pe o clasa existenta, polimorfismul ofera posibilitatea de a folosi acelasi nume pentru mai multe metode, diferite prin semnatura, si abstractizarea permite definirea unor clase abstracte care nu pot fi instantaite direct.