почему мы можем не инициализировать поле в абстрактном классе и компилятор не ругается private String author;? почему в классе-наследнике я не могу использовать это поле? если в методе getOutputByBookType не проинициализировать переменную output, то компилятор ругается
Anonymous #2632922
35 уровень
объясните пожалуйста поле аuthor
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
31 мая 2022, 11:26
почему мы можем не инициализировать поле в абстрактном классе и компилятор не ругается private String author;?
Поля ссылочного типа инициализируются значением null при создании объектов этого класса.
(Примитивные поля инициализируются значением 0 (false для boolean)).
почему в классе-наследнике я не могу использовать это поле?
Потому что оно private.
если в методе getOutputByBookType не проинициализировать переменную output, то компилятор ругается
Локальные переменные сами не инициализируются. Если в ней нет значения, то к этой переменной нельзя обратиться и её нельзя вернуть. Это проверяется на этапе компиляции. Сначала должна быть обязательно операция "=", присваивающая ей хоть какое-то значение.
0
Anonymous #2632922
31 мая 2022, 15:08
Написали –Потому что оно private
ну мы же в одном пакете, значит должно можно
метод getOutputByBookT тоже private . он разве не наследуется?
0