together - java interface inheritance
Por quĆ© "extends" precede a "implements" en la declaraciĆ³n de clase (2)
Cuando el compilador de Java convierte una clase en bytecode, primero debe mirar a una clase principal. 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 principal debe ser compilable, es más fácil si el compilador conoce por adelantado cuál es esa 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.
Por qué los implementos siempre deben escribirse después se extiende en la declaración de clase, por ejemplo:
public class Register extends ActionSupport implements ModelDriven
Por qué no
public class Register implements ModelDriven extends ActionSupport
es un error de tiempo de compilación
Probablemente para facilitar el trabajo del compilador. Es solo una convención. No hay ninguna ventaja de poder reorganizar estas cosas.
Es como preguntar por qué las funciones de Java no están escritas en notación previa al pedido, como public int (int a, int b)add{ return a+b; }
public int (int a, int b)add{ return a+b; }
.