假设我有以下界面:
interface Mammal {
void marry(Mammal m);
Mammal giveBirthTo();
}
但是,这并不能完全说明我想要什么。
显然,人不能嫁给狗,也不能生猫。那么,如何将这些信息嵌入到接口(interface)中,以便在实现输入类型和输出类型时可以自动对其进行更改?
最佳答案
您可以使用泛型并更改您的设计。
符合以下条件的东西:
interface Marriable<T extends Mammal> {
void marry(T sweetHalf);
T giveBirthTo();
}
...
Mammal
是您的顶级接口(interface)或抽象类,而Human
,Dog
,Unicorn
等则对其进行扩展/实现。