empaquetar com.ocr; clase A { estática { System.out.println ( "Static init A." ); } { System.out.println ( "Instancia init A." ); } UNA() { System.out.println ( "Constructor A." ); } } clase B se extiende A { estática { System.out.println ( "Static init B." ); } { System.out.println ( "Instancia init B." ); } B () { System.out.println ( "Constructor B." ); } } clase C se extiende B { estática { System.out.println ( "Static init C." ); } { System.out.println ( "Instancia init C." ); } C() { System.out.println ( "Constructor C." ); } } público de clase principal { estática { System.out.println ( "Static init principal." ); } { System.out.println ( "init Instancia principal." ); } pública Principal () { System.out.println ( "Constructor principal." ); } pública estática vacíos principales (args String []) { C c = nuevo C (); // B b = new B (); } }
los resultados
Estática init principal.
Estática init A.
Estática init B.
Estático init C.
Instancia init A.
Constructor A.
Instancia init B.
Constructor B.
Instancia init C.
Constructor C.
Conclusión: bloque estático de código en preferencia a decir que no hay un bloque de ejecución de código, y se ejecuta desde la parte superior de los padres
Constructor> subclase - matriz bloque estático de clase de código -> bloque estático subclase de código -> bloques de código constructor de la clase padre -> constructor de la clase padre -> bloque de código subclase configurados: Secuencia