By the end of this chapter, you should
Understand how we can use polymorphism to allow objects of different classes to be treated interchangeably by the user of these classes,
Understand how to create a polymorphic object that allows polymorphism to be used safely in application programs without exposing the class user to the hazards of pointers, and