Java:非静态嵌套类和 instance.super()
2022-09-03 00:43:38
我很难把头放在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());
}
}
我理解Inner的实例总是必须与Outer实例相关联,这也适用于Child,因为它扩展了Inner。我的问题是语法是什么意思 - 为什么它调用内部构造函数?o.super()
我只见过一个用于调用超类构造函数并调用被覆盖方法的超类版本的平原,但从来没有出现过某种形式。super(args)
super.method()
instance.super()