【发布时间】:2010-05-14 02:19:19
【问题描述】:
我很难理解 Java 中的非静态嵌套类。考虑以下示例,它先打印“Inner”,然后打印“Child”。
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() 形式的东西。
【问题讨论】:
-
LOL...
interview-questions标签是什么? -
作为 Java 职位面试的一部分,我被要求完成一个 IKM 测验;这个问题是测验中的一个简化形式。
-
@Kiv 你有现实生活中使用的例子吗?
标签: java inner-classes