[alishev] Java для начинающих. #16: Тип возвращаемого значения метода.
Java 718. Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
Да, в Java можно сузить уровень доступа и тип возвращаемого значения при переопределении метода. Любой метод может быть сужен до уровня доступа, ниже чем у его базового метода. Кроме того, тип возвращаемого значения может быть сужен до любого подтипа типа возвращаемого значения базового метода. Например, если есть класс Animal с методом makeSound возвращающим тип Object, и подкласс Cat переопределяет метод makeSound, то можно сузить тип возвращаемого значения до String, как показано в примере ниже:...
Java 336. Можем ли мы изменить тип возвращаемого значения переопределяющего метода с числового на целочисленный?
Если мы изменяем тип возвращаемого значения переопределяющего метода с числового на целочисленный, то это приведет к ошибке компиляции. При переопределении метода его сигнатура должна быть точно такой же, как у метода в суперклассе. Это означает, что тип возвращаемого значения в переопределяющем методе должен быть тем же, что и в методе суперкласса или его подтипом. Например, если в суперклассе у нас есть метод, который возвращает тип double, то в подклассе мы можем переопределить этот метод и вернуть значение типа double или подтип типа double, например, float...