Suppose, we need to debug somebody else’s program. We suspect
that there is a problem with the method wizbang() in class Widget
or with how that method is called. We cannot modify class Widget,
nor can we modify the client code that contains the calls to
Widget.wizbang(), since we don’t have those sources. However, we
can modify the code where Widget objects are created and we can
create new classes.
In order to better understand what this method does, we...