The Four Pillars of Object Oriented Programming

Abstraction

Only making certain aspects of the program accessible from outside of the class (private methods).

Encapsulation

Wrapping up the methods and attributes of the class within the class itself.

Inheritance

A class’ ability to inherit attributes and methods from other classes (keeps your code DRY).

Polymorphism

Classes that inherit from each other being able to invoke the same method and receive a different result.