Problem
1. What does polymorphism mean, and how is it used? What is function overriding? Function overloading?
2. What is a function signature? Describe how it is used in function overloading.
3. When would you use an abstract class, and what should it contain?