Перегрузка с другим возвратом вводит в Java?

Почему не возможно перегрузить функцию только путем изменения типа возврата? Это изменится в будущей версии Java?

Между прочим, только для ссылки, действительно ли это возможно в C++?

92
задан Pang 7 April 2017 в 01:16
поделиться

2 ответа

Вы не можете сделать это на Java и не можете сделать это на C ++. Причина в том, что одного возвращаемого значения недостаточно для компилятора, чтобы определить, какую функцию вызывать:

public int foo() {...}
public float foo() {..}

...
foo(); // which one?
149
ответ дан 24 November 2019 в 06:26
поделиться

Причина в том, что перегрузки в Java разрешены только для методов с разными сигнатурами.

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

См. Определение методов из учебников по Java.

47
ответ дан 24 November 2019 в 06:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: