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.