所以,我较早碰到了墙。如果我有一个具有内部类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。您到底想建立什么样的关系?

09-30 17:25