Comparable is defined as an interface. In that case, why is Key K extends Comparable<K> legal in the following case, and why isn't K implements Comparable<K> used instead?
public class Entry<K extends Comparable<K>, V> implements Comparable<Entry<K, V>> { ... }
This kind of code is used in ordered symbol tables for example.

Well, K could be an interface extending Comparable<K> instead of a class implementing it... in which case extends would be more suitable. As the declaration of Entry doesn't know whether K will be an interface type or a class type, it can't be right in every situation.
Ultimately this just gives simple and consistent syntax for expressing generic bounds without having to worry whether that upper bound is a class or an interface.
See more on this question at Stackoverflow