相关疑难解决方法(0)

Java:非静态嵌套类和instance.super()

我很难在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().

java inner-classes

17
推荐指数
3
解决办法
4125
查看次数

标签 统计

inner-classes ×1

java ×1