La programación orientada a objetos es un paradigma de programación que diseña aplicaciones y programas usando objetos y sus interacciones, introduciendo conceptos como clases, herencia, objetos, métodos, eventos y atributos. Está basado en herencia para reutilización y extensibilidad, abstracción para aislar elementos de su contexto, y polimorfismo para enviar mensajes a objetos heterogéneos.