В ходе решения этой задачи у меня возникло два вопроса (ну точнее, после того, как я подглядел решение). 1. Как помпилятор понимает какое значение переменной author использовать в методе getOutputByBookType()? Ведь у двух разных обьектов различные значения поля author, разве не надо явно обращаться к этому полю (объект.author). 2. Как вызывается метод getBook()? Это же нестатический метод, который должен вызывать экземпляр класса?