Tom Landry wrote:I thought interfaces are implemented and not extended.
A class implements an interface. An interface can extend another interface, meaning any class who implements the first would need to implement the methods of both interfaces. So an ArrayList, which implements List, must also implement all the methods in Collection, and for inheritance and assignment purposes the ArrayList IS-A List and also IS-A Collection.
I thought all methods in an interface are abstract, yet most if not all of the List class are not abstract.
All interface methods are implicitly public and abstract, they don't need to be declared as such, just having the method definition in the interface makes it so. So yeah, you are right, the methods are all abstract but the List interface doesn't actually have to use the
word, since it is understood from the interface definition.