¿Dónde se define realmente el "súper"? [Cuando estamos usando super.someMethod()]. ¿Está definido como un campo en la clase java.lang.Object o en la clase java.lang.Class?¿Cómo se implementa Super en Java?
Cuando llamamos desde una subclase, super contiene la referencia a su superclase. De la misma manera, el super en superclase tiene referencia a su superclase [De esta forma hasta java.lang.Object]. Entonces, ¿cómo inyecta java las referencias de la superclase al campo "super" que nos permite llamar a los métodos de superclase?
¿Hay alguna bajo las implementaations campana como el siguiente:
Class current = this.getClass();
Class parent = current.getSuperclass();
System.out.println("name is =" + parent);
1 Secundo esto. En el código de bytes, no es diferente de una llamada a método estándar. – Jivings
Tiene razón, en la medida en que es posible en el nivel de código de bytes violar reglas que el compilador impone y no llama a super() como lo primero en un constructor. Puede modificar el bytecode para hacer esto y la JVM lo ejecutará felizmente. –