Note, however, that adhering to an interface requires saying that the class implements it in its class header. Just think of the interface names as if they were template arguments. Enumerations are called iterators in other languages. To implement an enumeration properly, you must guarantee that each call of nextElement will return an element of the collection not yet returned, and that hasMoreElements will be true if and only if not all elements have yet been returned by nextElement. Pages 154 and following in Core Java and 76 and following in the Nutshell book.
Threads also make use of interfaces.
Page 383 in the Nutshell book has a list of what classes implement which interfaces in the Java libraries. In general, the cross reference that begins on page 365 in the Nutshell book is excellent. So is the Glossary on page 399ff. A class can extend one other class and implement any number of interfaces. An interface can extend any number of interfaces.