La programación orientada a objetos define clases y objetos. Una clase especifica los atributos y métodos de una entidad, mientras que un objeto es una instancia concreta de una clase. Las clases se pueden heredar para que las subclases compartan atributos y métodos, y los objetos pueden interactuar a través de mensajes que invocan sus métodos.