java - Java 继承。父母有父母的名单,孩子必须有孩子的名单。如何?
问题描述
我正在努力实现下一个:
家长:
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;
}
}
但由于某种原因,我得到了方法冲突的错误。在不使用泛型类型的情况下,这甚至可以通过继承实现吗?
解决方案
您实际上不需要覆盖/复制子类中的任何内容。
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> {}
推荐阅读
- r - 如何检查 id 是否在特定日期进入数据并保留到退出日期
- node.js - 如何自定义firebase DocumentData 接口?
- python-3.x - 如何允许用户在节点之间添加边?
- c++ - 创建玩家向量并向每个玩家添加信息
- java - 以编程方式创建布局时在 Camera2 API 中拉伸的预览
- arrays - Oracle 11 中的数组
- c# - 如何将 SQL Server 数据库与 Coded UI Test 结合使用?
- android - 有没有办法吸引下载应用但从不打开的用户?
- wordpress - 高级自定义字段灯箱似乎显示附加到字段的所有图像,而不是附加到帖子的图像
- nightwatch.js - 如果 .assert.containsText 在 nightwatch 中失败,Chrome 浏览器会崩溃