La programación orientada a objetos se basa en cuatro pilares fundamentales: la abstracción que permite seleccionar las características más importantes de una clase, el encapsulamiento que privatiza los atributos y métodos de una clase, la herencia que permite que una clase herede atributos de otra clase principal y el polimorfismo que da a los objetos la capacidad de actuar de forma diferente ante el mismo mensaje.