ウィキペディアは次のように定義しcovariance
ています
より広い (動物) からより狭い (猫) に変換します。
しかし、 のような言語ではJava
、戻り型の共分散は、サブタイプをスーパータイプに割り当てることとして定義されます。
public Animal getAnimal(){
return new Cat();
}
ここでは、サブタイプをスーパータイプに割り当てていますが、Wikipedia
定義によれば、共分散はスーパータイプをサブタイプに割り当てています。どうすれば2つを調整できますか?