Object-oriented programming builds software from objects, and rests on four ideas: encapsulation, abstraction, inheritance and polymorphism.