Why is it that some abstract methods in interface hierarchies are redeclared as abstract further down?
iterator() for example, abstract in Collection is redeclared in Set and List, and again further down the Set hierarchy in NavigableSet.
I'd like to understand why this is done from a design point of view, or if there's some historical reason, etc. (I haven't seen anything about it in texts I've read sofar, and could not find anything in the JLS).
It is similar with other methods in Collection: add, size, remove, removeAll, clear, contains, containsAll, equals, isEmpty
Collection,List,Set- are from the same version, 1.2.NavigableSetis from 1.6.