【发布时间】:2013-04-15 06:04:18
【问题描述】:
参考Question 中的代码,我想知道外部类的扩展是如何工作的。我的意思是一个类(内部类)如何在两个地方有它的定义(由于是内部类而在外部类中,由于扩展了外部类而在其本身中)。完成后里面有什么。
谢谢
代码
public class Something {
private int y;
class IsSomething extends Something {
public void print() {
System.out.println("123");
}
}
}
【问题讨论】:
-
你的问题没有意义。内部类在一个地方定义:在内部类中。
-
@EJP:但是如果内部类扩展了外部类,那么外部类(包括内部类本身)的所有成员(私有除外)都可以被扩展类使用。所以看起来内部类可以通过外部类访问自己。
-
还是不清楚。向我们展示一个代码示例。
-
@TheBlastOne:我已经在问题中添加了代码。
-
内部类 declaration 可以被视为
static final字段,因此内部类不能“访问自身”,而不能访问任何其他类。当您创建内部类的实例时,它包含它自己的所有字段和对外部类实例的reference。但是,外部类 instance 不包含对您刚刚创建的内部实例的引用。
标签: java inner-classes extends outer-classes