我很难在Java中围绕非静态嵌套类.请考虑以下示例,其中打印"内部",然后打印"子".
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());
}
}
Run Code Online (Sandbox Code Playgroud)
我理解Inner的实例总是必须与外部实例相关联,并且这也适用于Child,因为它扩展了Inner.我的问题是o.super()语法的含义 - 为什么它会调用Inner构造函数?
我只看到一个普通的super(args)用于调用超类构造函数并super.method()调用重写方法的超类版本,但从来没有形式的东西instance.super().