Javaの継承。親が親のリストを持って、子供はチャイルズのリストを持っている必要があります。どうやって?

dendimiiii;

私は次を達成しようとしています:

親:

public class Animal {
    private List<Animal> relatives;

    public List<Animal> getRelatives() {
        return relatives;
    }

    public void setRelatives(List<Animal> relatives) {
        this.relatives = relatives;
    }
}

子:

public class Dog extends Animal {
    private List<Dog> relatives;

    public List<Dog> getRelatives() {
        return relatives;
    }

    public void setRelatives(List<Dog> relatives) {
       this.relatives = relatives;
    }
}

しかし、いくつかの理由で、私は方法が衝突しているというエラーが発生します。これは、ジェネリック型を使用せず、相続でさえ可能ですか?

アンドリューTobilko:

あなたは本当に、子クラスで/重複何かをオーバーライドする必要はありません。

class Animal<Relative extends Animal<?>> {
  private List<? extends Relative> relatives;

  public List<? extends Relative> getRelatives() {
    return relatives;
  }

  public void setRelatives(List<? extends Relative> relatives) {
    this.relatives = relatives;
  }
}

class Dog extends Animal<Dog> {}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=316523&siteId=1