我相信这适用于这种情况
public class Main {
static class Child extends Parent{
class DeeplyNested {
public void method() {
Child.super.overriden();
}
}
public void overriden() {
System.out.println("child");
}
}
static class Parent {
public void overriden() {
System.out.println("parent");
}
}
public static void main(String args[]) {
Child child = new Child();
DeeplyNested deep = child.new DeeplyNested();
deep.method();
}
}
在JLS中
形式T.super.Identifier指的是的名为Identifier的字段
对应于T的词法封闭实例,但带有
被视为T的超类的实例。
Identifier
是
overriden
,方法。
在这里
lexically enclosing instance
属于类型
Child
它的超类是
Parent
所以
T.super
指的是
小孩
视为
父母亲
.
上面的代码打印
parent