Problem
1. For a language to be considered a true object-oriented programming (OOP) language, it must support abstraction, encapsulation, inheritance, and polymorphism.
2. Abstraction enables you to think about something in a certain way and represent only essential features appropriate to the problem. It is used to identify and determine the objects needed for the design. Encapsulation is used to package together common characteristics into a class consisting of behaviors and data. Inheritance allows you to create a general class and then define specialized classes that have access to the members of the general class. Polymorphism is the ability for classes to provide different implementations of methods that are called by the same name.