1. In the original version of the stopwatch, if the watch is already running and we call start a second time, nothing happens. In the modified stopwatch, each time we call the start method, we restart the time. Therefore, we would expect the basic stopwatch to have about twice the time as the modified variant. 2. a. Yes. It's perfectly fine to store a ModifiedStopWatch object in a variable of type StopWatch since the ModifiedStopWatch extends the StopWatch class and therefore has all the functionality of a StopWatch (and then some). b. No. A StopWatch object does not have all the functionality of a ModifiedStopWatch. If Java allowed this, we could find ourselves in a situation where we were trying to call a method on an object for which that method didn't exist. 3. No. The problem is last line. Even though we know that the object stored in the stopWatch variable is a ModifiedStopWatch, Java cannot guarantee this in general. So, the only methods that we could call through the stopWatch variable are methods that are available for the StopWatch class.