La Programación Orientada a Objetos (POO) define programas en términos de clases de objetos, que combinan estado, comportamiento e identidad. Los objetos colaboran entre sí para realizar tareas, lo que hace los programas más fáciles de escribir, mantener y reutilizar. La POO se basa en los pilares de abstracción, encapsulamiento, herencia y polimorfismo.