Kev,
You are correct in thinking that retrieving an object from a list is downcasting. For example,
The downcast is necessary because a list/iterator contains objects. In
Java 1.5 (using generics), this scenario loses value because you can tell the list the specific type.