Implementing for Extensibility
With polymorphism, you can design and implement systems that are easily extensible—new classes can be added with little or no modification to the general portions of the program, as long as the new classes are part of the inheritance hierarchy that the program processes generally. The only parts of a program that must be altered to accommodate new classes are those that require direct knowledge of the new classes that you add to the hierarchy. For example, if we create class
Tortoise that inherits from class
Animal (which might respond to a
move message by crawling one inch), we need to write only the
Tortoise class and the part of the simulation that instantiates a
Tortoise object. The portions of the simulation ...