# data[].attributes.body
Abstracción: Es el mecanismo que permite concentrarse en los aspectos que se necesitan, obviando los que no son necesarios. Las clases son el mecanismo para implementar la abstracción en Java, representan lo que los objetos de esa clase tienen y saben hacer, agrupan lo común en representación y funcionalidad de los objetos. Una clase es una abstracción para un tipo concreto y determinado de objetos.

# data[].attributes.body
Encapsulación: Es el mecanismo por el cual los datos y los códigos están protegidos de su acceso desde el exterior; es decir por parte de otros objetos que necesitan su colaboración. Un objeto sólo expone las funcionalidades expresadas en su interfaz público y ocultan tanto su código como su representación. La clase con sus diferentes tipos de acceso es quien implementa la encapsulación.

# data[].attributes.body
Herencia: Es el mecanismo por el cual un objeto puede adquirir propiedades y funcionalidades de otro tipo de objetos. Es un mecanismo de generalización de propiedades y funcionalidades para las clases de las que se hereda (superclases) y de especialización de las clases que heredan (subclases).

# data[].attributes.body
Polimorfismo: Es el mecanismo por el cual con la misma forma se ejecutan códigos diferentes. En una jerarquía de herencia de clases, se implementa una funcionalidad determinada en las superclases (de las que se hereda) y se va especializando su funcionamiento de acuerdo a las subclases (que heredan dicha funcionalidad).