所以,我较早碰到了墙。如果我有一个具有内部类SubParent的Parent类,如下所示:
public class Parent
{
public class SubParent
{
}
public Parent(SubParent sp)
{
}
}
然后我有一个Child类,它像这样扩展了Parent:
public class Child extends Parent
{
public Child()
{
super(new SubParent());
}
}
然后,我得到一个“错误:在超类型构造函数被调用之前无法引用它”,其中的箭头指向SubParent构造函数。
现在,如果我在自己的文件中将SubParent作为单独的类,则一切正常。但我想将其作为内部类。有什么办法吗?
最佳答案
内部类实例需要外部类实例存在。此时您正在打电话
super(new SubParent());
在创建外部类实例之前,将调用
SubParent
构造函数。你做不到在自己的文件中声明
SupParent
或将其设置为static
。您到底想建立什么样的关系?