As principais linguagens de programação que obedecem ao paradigma de programação orientada a objetos são Java, C++, PHP e correndo por fora temos Python.
O principal "atrativo" desde paradigma de programação é a capacidade de reutilização de código. Alguns conceitos básicos estão, pobremente, definidos abaixo.
Classe: Conjunto de métodos que definem como realizar determinada ação, mas não realizam ações. Classe tem uma definição bem abstrata, porém, podemos definir classe como sendo a definição teórica de como fazer determinada ação.
Objeto: Objetos são a concretização das classes. Os objetos são quem realmente realizam as ações definidas nas classes.
Herança: É a capacidade que uma classe tem de herdar métodos de uma superclasse.
Interface: É um "contrato" assinado entre duas classes, onde a classe que implementa uma classe abstrata assume o compromisso de implementar os métodos que a abstrata declara.
Polimorfismo: É a capacidade de reescrever um método herdada de uma superclasse.