Подтвердить что ты не робот

Почему контравариантные типы параметров в Java не допускаются для переопределения?

При переопределении метода суперкласса Java допускает, чтобы возвращаемый тип был ковариантным.

Почему контравариантные типы параметров в контрасте не разрешены при переопределении методов?

4b9b3361

Ответ 1

Потому что это называется перегрузкой .

В частности, тип возвращаемого типа может быть ковариантным, поскольку он не учитывается при перегрузке и, следовательно, по-прежнему соответствует реализации суперкласса или интерфейса. При перегрузке учитываются параметры. У вас может быть оптимизация с Number doSomethingWithNumber(Integer value) по сравнению с Number doSomethingWithNumber(Number value).