Cuando el compilador de Java se convierte en una clase de código de bytes, primero debe mirar a una clase padre. Esto se debe a que la implementación subyacente de las clases apunta al código de bytes de la clase padre, que contiene los métodos y campos relevantes. Luego agrega punteros al código de las funciones de la clase hija, algunas de las cuales son obligatorias por la palabra clave 'implements'.
Debido a que la clase padre debe ser compilables, es más fácil si el compilador sabe por adelantado lo que es la clase. Además, puede extender solo una clase pero implementar cualquier cantidad de interfaces. El tiempo de compilación aumenta si la palabra clave extends se puede mezclar entre cualquier cantidad de instrucciones de implements. Los compiladores quieren fallar lo más rápido posible para disminuir el tiempo de desarrollo, por lo que esta opción es lógica. Además, te ayuda a pensar con claridad sobre la clase por la misma razón.
Porque así es como Java es. –
... porque esa es la forma en que lo ordena el lexer? – Makoto
Sue Oracle para esto =) – 4lex1v