Компилятор не учитывает тип возвращаемого значения при различении методов, поэтому вы не можете объявить два метода с одинаковой сигнатурой, даже если они имеют другой тип возвращаемого значения.
Если вам известно о выполнении функции, то вы будете знать, что когда мы вызываем функцию, часть определения выполняется, и, наконец, нам требуется оператор return, поэтому мы можем сказать, что return идет после полного определения функции, поэтому, если есть две или более функций с тем же именем и с тем же типом и нет. аргументов, то во время вызова, как компилятор узнает, какой из них вызывать, потому что имя функции и параметры совпадают. Во время вызова сначала все внимание будет уделено аргументам и имени функции, а после завершения определения функции, наконец, мы имеем дело с оператором возврата.
Ошибка времени компиляции лучше, чем Ошибка времени выполнения. Таким образом, Java-компилятор отображает ошибку времени компилятора, если вы объявляете тот же метод, имеющий те же параметры.