Object-oriented programming is based on four pillars which differentiate it from other programming paradigms. Abstraction Polymorphism Encapsulation Inheritance