Polymorphism allows multiple meanings to be
assigned to the same operation. For example, in a
Computer Graphics 2D drawing engine (i.e., a graphics
display device) lines, polygons, circles, and ellipses can
be drawn. Using conventional structured programming
techniques, this problem would be solved by having
separate Draw Line, Draw Polygon, Draw circle, and
Draw Ellipse routines. For each shape there is a different
routine. With an object-oriented system, each kind of
shape represents a different class, hierarchically
arranged. There might be a Line class, a Filled Area
class, and a Wire frame class. Here, the same name can be
used for the drawing method of every class, even though
the actual code to perform the drawing could be different
from one class to another.