This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Comparable is used to define a natural order of a class, so that sort routines (such as Collections.sort()) are able to sort them. To be able to sort objects, you have to have a way of defining what order they should come in - we can do this by implementing Comparable.
The generic constraint you see there is really a bit different to implementation. The word extends is used regardless of whether you're referring to a class or an interface, because in this context it's not really important. And also, E could refer to an interface, and interfaces extend other interfaces.