Este documento explica tres conceptos fundamentales de la programación orientada a objetos: la herencia, el polimorfismo y el encapsulamiento. La herencia permite que las clases hereden atributos y métodos de otras clases base. El polimorfismo hace posible que objetos de diferentes clases respondan de forma diferente a los mismos métodos. El encapsulamiento implica ocultar los detalles de implementación de un objeto y exponer solo una interfaz para interactuar con él.