Me está costando pasar por las clases anidadas no estáticas en Java. Considere el siguiente ejemplo, que imprime "Interior" y luego "Niño".Java: clases anidadas no estáticas y instance.super()
class Outer {
class Inner {
Inner() { System.out.println("Inner"); }
}
}
public class Child extends Outer.Inner {
Child(Outer o) {
o.super();
System.out.println("Child");
}
public static void main(String args[]) {
new Child(new Outer());
}
}
entiendo que los casos de interior siempre tienen que estar asociados con una instancia exterior, y que eso se aplica a niño demasiado, ya que se extiende Interior. Mi pregunta es qué significa la sintaxis o.super()
, ¿por qué llama al constructor interno?
Sólo he visto una llanura super(args)
utilizado para llamar al constructor de la superclase y super.method()
a llamar a la versión de la superclase de un método reemplazado, pero nunca algo de la forma instance.super()
.
LOL ... ¿qué tiene esto con la etiqueta 'interview-questions'? – Cristian
Como parte de una entrevista para un puesto de Java, me pidieron que completara un cuestionario de IKM; esta pregunta es una forma simplificada de una en el cuestionario. – Kiv
@Kiv ¿tiene usted un ejemplo del uso de la vida real? – chepseskaf