During your career as a creator of software, you will hear the term OOP many times. This design philosophy allows for objects to exist independently and can be reused by different sections of code. This is all made possible by what we refer to as the four pillars of OOP: inheritance, encapsulation, abstraction, and polymorphism.
In order to grasp this, you need to start thinking of objects (which are basically instantiated classes) that perform a specific task. Classes need to adhere to the SOLID design principle. This principle is explained here:
- Single responsibility principle (SRP)
- Open/closed principle
- Liskov substitution principle (LSP)
- Interface segregation principle
- Dependency inversion principle
Let's start off with an explanation of the four pillars of OOP, after which we will take a look at the SOLID principle in more detail.