我很难包装我的头在Java中的非静态嵌套类。考虑下面的例子,它打印“Inner”和“Child”。Java:非静态嵌套类和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());
}
}
我知道Inner的实例总是必须与一个Outer实例关联,并且它也适用于Child,因为它扩展了Inner。我的问题是o.super()
语法的含义 - 为什么它会调用Inner构造函数?
我只看到用来调用父类的构造纯super(args)
和super.method()
调用覆盖方法的超类版本,但从未形式instance.super()
的东西。
大声笑...这是什么'面试 - 问题'标签? – Cristian 2010-05-14 04:26:41
作为Java职位面试的一部分,我被要求完成IKM测验;这个问题是测验中的一个简化形式。 – Kiv 2010-05-14 12:34:09
@Kiv你有没有现实生活中的例子? – chepseskaf 2013-10-07 13:14:10