wiki Contravariant_method_argument_type表示重写方法将子类型规则作为函数类型,但除了一个支持逆变量参数类型外没有其他语言.我也无法想出使用它的任何好处.
例:
class AnimalShelter {
Animal getAnimalForAdoption() { ... }
void putAnimal(Animal animal) { ... }
}
class CatShelter extends AnimalShelter {
?Overriding
Cat getAnimalForAdoption() { return new Cat(); }
?Overriding
void putAnimal(Object animal) { … }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是: