Programarea orientată pe obiect (OOP) se bazează pe trei principii fundamentale: moștenirea, încapsularea și polimorfismul. Moștenirea permite definirea unei clase bază și derivarea de clase derivate care moștenesc caracteristicile clasei bază. Încapsularea implică împachetarea datelor și metodelor care le manipulează într-o entitate numită obiect. Polimorfismul permite unui obiect să manifeste mai multe forme în funcție de context.