La programación orientada a objetos (POO) define programas en términos de clases de objetos, que combinan estado, comportamiento e identidad. Las clases son plantillas que agrupan métodos y atributos, y los objetos son instancias de clases. La POO permite la herencia, sobrecarga de métodos, y oculta datos a través de métodos.