Description should include the following concepts:
- Abstraction is a general model of a real-world system that includes the essence of that system.
- Encapsulation means that each class should contain all the aspects of its area of responsibility without revealing the details of how it does what it does.
- Inheritance allows one class, called a subclass, to use methods and properties of another class, called a superclass.
- Polymorphism is the idea that a code element can transform into multiple forms or behave in multiple ways.