Может ли кто-нибудь привести пример, когда контр-дисперсия полезна? и зачем использовать ковариацию против наследования?
В каких случаях можно использовать контр-дисперсию? Зачем использовать ковариацию против наследования?
Ответы (1)
Может ли кто-нибудь привести пример, когда контр-дисперсия полезна?
Противодисперсия бесполезна. Это просто свойство, которым обладают некоторые конструкторы типов.
Некоторые целые числа нечетные, некоторые четные. Это просто свойство этих целых чисел.
Точно так же некоторые конструкторы типов ковариантны по параметру типа или контрвариантному варианту. (Или инвариант.)
и зачем использовать ковариацию […]?
Это тоже не то, чем вы пользуетесь. Это просто то, что есть.
и зачем использовать ковариацию против наследования?
Этот вопрос действительно не имеет смысла. Не только по указанной выше причине (ковариация - это просто то, что есть, а не то, что вы используете), но также из-за связи между ними: дисперсия - это то, что является следствием < / em> взаимодействия между полиморфизмом подтипа и параметрическим полиморфизмом.
<T extends Comparable<? super T>>
. Это позволяет сравнивать 2 объекта, даже если они просто наследуют методы сравнения от своих суперклассов и не реализовали их сами. - person user   schedule 18.06.2020