La programación orientada a objetos se basa en un conjunto de principios de los que podemos destacar los siguientes:
- Abstracción: Solo es relevante la funcionalidad de un objeto, no cómo está desarrollado.
- Encapsulamiento: El estado de un objeto está oculto a cualquier otro objeto, de forma que la única forma de interactuar con él es a través de los métodos y atributos que tiene definidos.
- Herencia: Es posible crear una clase de objetos a partir de otra clase existente, heredando todas sus características y permitiendo añadir otras nuevas.
- Poliformismo: Podemos enviar mensajes sintacticamente iguales a objetos distintos. Por ejemplo, en Python, tanto las listas como los números pueden ser sumados, siendo el resultado diferente en cada caso.