To reduce complexity, abstraction in Object-Oriented Programming refers to showing only the essential features of an object to the user and hiding the inner details. In other words, the user only needs to know “what an object does?” rather than “how it does?” Example Image by Author The above sketch is a good real-world example of abstraction. A user can only use and connect with the application’s limited functionality and is uninformed of the system architecture or how the application was built up. Typically, users are only involved with an application’s functionality. Nothing at all is hidden from an administrator , who has access to many more features of the application. The administrator can monitor user activity, understand how the application was created, and implement new features by implementing them in the system. In the previous example, the abstraction is implemented to the user but not to the administrator . Image by Author Let’s take a look at another example of abstract...