First, there can only be one class; each Java class (except java.lang.Object , which is a special case as the root of the hierarchy) can inherit only one class from one class. There can be several interfaces, but no more than one class. This greatly simplifies the processing of the type hierarchy and the object construction process.
Given that the language developers decided that the class should be specified first within the boundaries (if it is present at all). Actually, there is no serious reason for this - the compiler could just cope with the restrictions for only one class without ordering - but this simplifies teaching, because there is a simple rule: if you use the class as a generic type, put it first.
source share