In this chapter you’ll learn:
• The concept of polymorphism.
• To use overridden methods to effect polymorphism.
• To distinguish between abstract and concrete classes.
• To declare abstract methods to create abstract classes.
• How polymorphism makes systems extensible and maintainable.
• To determine an object’s type at execution time.
• To declare and implement interfaces.
One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
—John Ronald Reuel Tolkien
General propositions do not decide concrete cases.
—Oliver Wendell Holmes
A philosopher of imposing stature doesn’t think in a vacuum. Even his most abstract ideas are, to some extent, ...