【发布时间】:2014-02-19 03:00:36
【问题描述】:
当实例化一个嵌套类时,它如何引用外部类?它总是扩展外部类还是以其他方式引用它?有人告诉我内部扩展了外部,但是为什么下面的示例不起作用?
例如:
public class OuterClass {
public String fruit = "apple";
public class InnerClass {
public String fruit = "banana";
public void printFruitName(){
System.out.println(this.fruit);
System.out.println(super.fruit);
}
}
}
上面没有编译,super.fruit 出现错误,说 'fruit' 无法解析。但是,如果指定内部类来扩展外部类,那么它可以工作:
public class OuterClass {
public String fruit = "apple";
public class InnerClass extends OuterClass {
public String fruit = "banana";
public void printFruitName(){
System.out.println(this.fruit);
System.out.println(super.fruit);
}
}
}
这似乎表明,除非特别指定,否则内部类不会扩展外部类。
【问题讨论】:
标签: java reference nested inner-classes nested-class