Question: is iterator an abstract class?
Answer: Each implementation of Iterator is unique to the collection it is iterating. These is not enough common code to warrant an abstract base class. ... This combination allows for complete freedom to implement the interface but allows for code reuse in the cases where implementations can use the abstract class.