La programación orientada a objetos (POO) representa el mundo real mediante objetos y sus interacciones. Una clase define los atributos y métodos comunes a todos los objetos de un tipo dado. Las instancias de clase son objetos individuales que pueden heredar atributos de clases padre. La herencia permite extender y reutilizar código. El encapsulamiento oculta las implementaciones internas de un objeto. El polimorfismo permite que métodos con el mismo nombre tengan comportamientos diferentes dependiendo del objeto.