Este documento describe seis principios fundamentales de la programación orientada a objetos: abstracción, encapsulamiento, modularidad, jerarquía, paso de mensajes y polimorfismo. La abstracción permite modelar la realidad como objetos. El encapsulamiento une el código y los datos para protegerlos. La modularidad divide la aplicación en módulos independientes. La jerarquía organiza las clases en una estructura de herencia. El paso de mensajes permite que los objetos se comuniquen. Y el polimorfismo hace que las interfaces se puedan usar de