La programación orientada a objetos es un paradigma que se basa en la creación de objetos que interactúan entre sí dentro de un sistema. Estos objetos se generan a partir de clases que definen sus propiedades y comportamientos.
Reune todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción.
Abstracción
Denota las características esenciales de un objeto, donde se capturan sus comportamientos.
Modularidad
permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando
Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen.
Clase
se puede definir de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ella