我很難包裝我的頭在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