Java против C # метод / функция переопределения возвращаемого типа? - PullRequest
1 голос
/ 04 марта 2012

Есть ли разница в том, как Java и C # оценивают сигнатуры методов / функций для выполнения переопределения?В Java два метода в дочернем и родительском, с одинаковыми именами и параметрами, но разными типами возвращаемых данных, являются ошибкой, тогда как в C # он прекрасно компилируется.

Прав ли я, полагая, что C # рассматривает это как перегрузку, тогда как Java пытаетсяпереопределение, но позволяет переопределение только тех же типов возврата?

1 Ответ

0 голосов
/ 04 марта 2012

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

возвращаемый тип не является частью подписи.однако, когда вы переопределяете метод, вы должны поддерживать совместимость возвращаемого типа, перед Java 5 возвращаемый тип должен быть идентичным .

но теперь (Java 5+) вы можете вернуть подкласс исходного типа, который называется Ковариант возвращаемый тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...