Если мы изменяем тип возвращаемого значения переопределяющего метода с числового на целочисленный, то это приведет к ошибке компиляции.
При переопределении метода его сигнатура должна быть точно такой же, как у метода в суперклассе. Это означает, что тип возвращаемого значения в переопределяющем методе должен быть тем же, что и в методе суперкласса или его подтипом.
Например, если в суперклассе у нас есть метод, который возвращает тип double, то в подклассе мы можем переопределить этот метод и вернуть значение типа double или подтип типа double, например, float. Однако, мы не можем вернуть значение типа int, потому что это не является подтипом типа double.
Рассмотрим следующий пример:
class Parent {
public double method() {
return 0.0;
}
}
class Child extends Parent {
@Override public int method() {
return 0;
}
}
Здесь мы пытаемся переопределить метод method() из суперкласса Parent в подклассе Child и изменить тип возвращаемого значения с double на int. Однако, это приведет к ошибке компиляции, так как тип возвращаемого значения в переопределяющем методе должен быть тем же, что и в методе суперкласса или его подтипом.
Таким образом, мы не можем изменить тип возвращаемого значения переопределяющего метода на целочисленный, если тип возвращаемого значения в суперклассе является числовым.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov