Здравствуйте, nikov, Вы писали:
N>Что значит "особенно в генериках"?
Ковариантность в генериках, например, List<Cat> это подтип List<Animal> (если Cat это подтип Animal), по сравнению с ковариантностью без генериков, как в типе возвращаемого значения переопределенным в наследуемом классе методом:
http://en.wikipedia.org/wiki/Covariant_return_type
// Classes used as return types:
class A {
}
class B extends A {
}
// "Class B is more narrow than class A"
// Classes demonstrating method overriding:
class C {
A getFoo() {
return new A();
}
}
class D extends C {
@Override
B getFoo() {
return new B();
}
}