Exploring the pillars of OOP
Depending on who you talk to, OOP is governed by four pillars: encapsulation, abstraction, inheritance, and polymorphism. Some sources will cite only three pillars due to some developers grouping abstraction and encapsulation as a singular concept. Academia usually teaches that there are four pillars, and it is more common to hear about four pillars as opposed to three. For this book, we will explore the four pillars.
Encapsulation versus abstraction
In OOP, we want to hide as many of the attributes as possible. We do this so attributes outside of the function block can’t accidentally use them and cause issues. This will make the program easier to troubleshoot and maintain in the long run. However, there are some attributes that do have to be used by outside attributes. In this case, we need to provide the bare minimum to the outside function blocks, that is, we need to expose only as much as is needed of the process outside of the function...