我正在全力以赴如何实现我在这里想要实现的目标。 请原谅我的榜样,但这是我能想到的最好的例子。假设我有一个“动物”界面。动物总是有一个父母,其本身与其自身具有相同的类型。
public interface Animal {
Animal getParent();
void setParent(Animal parent);
}
我现在有一个名为“人类”的子类,该子类实现了“动物”接口。但是,当然应该始终将其getParent()和setParent()限制为另一个人。
class Human implements Animal {
private Human parent;
@Override
public Human getParent() {
return parent;
}
@Override
public void setParent(Human parent) {
this.parent = parent;
}
}
由于有“ @Override”注解,因此可以覆盖“ getParent”方法,但不适用于“ setParent”。我的设计错了吗?应该如何实施?