扩展一个包含对List本身的引用的类

Amm*_*kun 1 java inheritance composition

我有一个超级类的东西

class SuperClass {
   private String name;
   private List<SuperClass> subList;
   //getter setters
}
Run Code Online (Sandbox Code Playgroud)

我想扩展这个SuperClass以获得更多的字段,比如

class SubClass extends SuperClass {
    private String email;
   //getter setter
}
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是,因为SuperClass包含对SuperClass类型的对象列表的引用,我将如何确保任何SubClass对象保存对SubClass类型的对象列表的引用...它甚至可能吗?我在这里做了什么非常错的事吗?

编辑 我可以做类似的事情

class SuperClass {
private String name;
private List<? extends SuperClass> subList;
public SuperClass(List<? extends SuperClass> subList) {
    this.subList = subList;
  }
}
Run Code Online (Sandbox Code Playgroud)

而现在SubClass只需要调用超类的构造函数

class SubClass extends SuperClass{
    private String email;

    private SubClass(List<? extends SuperClass> subList) {
        super(subList);
      }
    }
Run Code Online (Sandbox Code Playgroud)

但是现在,如果我想在列表中添加一些内容,我将无法做到,因为PECS(生产者 - 扩展,消费者 - 超级)泛型的原则不允许我这样做..所以无论何时,我都必须将对象添加到subList我将不得不创建一个新列表,然后在SubClass中设置列表

rar*_*rry 7

是否有可能引入第三类?这些方面的东西:

class AbstractClass<T> {
    protected List<T> subList;
    // getter setters
}

class SuperClass extends AbstractClass<SuperClass> {
    private String name;
    // getter setters
}

class SubClass extends AbstractClass<SubClass> {
    private String email;
    // getter setter
}
Run Code Online (Sandbox Code Playgroud)