ООП - книги

  • 8
  • Недоступна
В этой задаче будем создавать книги земных авторов Марка Твена и Агаты Кристи. Разумеется, с помощью классов MarkTwainBook и AgathaChristieBook, которые наследуется от Book. В этих классах нужно реализовать все абстрактные методы, а в родительском классе реализуйте тело метода getOutputByBookType.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (155)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Роман Князев16 уровень, Санкт-Петербург
20 мая, 07:20
Интересная задача, позволяет лишний раз по практиковаться в наследование. Решал час, потом все заного начала, и обращал внимание на коментарие IDE (использую Eclipse), и реально решил за минут 10. Спасибо Alexey Matias, он и направил на то, что задача очень простая.
Шкипер16 уровень, Минск
16 мая, 20:27
У всех такой ответ выводит? [Tom Sawyer was written by Mark Twain, Agatha Christie: Hercule Poirot is a detective] Валидатор задачу принял, но то что выводит в консоль, меня смущает... Очень непонятная задача, но и интересная в свою же очередь.
Alexey Matias16 уровень, Санкт-Петербург
16 мая, 20:16
Интересно, иногда заходишь глянуть на комментарии задачи, над которой ты бьешься несколько часов, а там все многие решают ее за несколько минут, а иногда выходит все наоборот)
Anton Rymarenko19 уровень
15 мая, 09:07
Без подсказок здесь, я бы наверное сидел бы дня два .Очень тяжелая формулировка ,и непонятный кусок кода .Спасибо всем кто кидал сюда свои варианты решения .
Дмитрий Метельский20 уровень, Минск
14 мая, 20:10
Ну закрутили с задачей) Конструктор заставляет понервничать)
Nordis20 уровень, Санкт-Петербург
13 мая, 22:34
Еее я сделал это. часа 3 потратил. https://i.gyazo.com/344d422aefa9a2e6fefc61de28ea46cc.png Задача просто ужасная. Как я и говорил в джаве раш крайности. То задача решаеться за 2 мин, то 3 часа. Огромное спасибо всем комментам и вопросам. без вас я бы мучался целый день а то и два. Короче тот кто такой же как и я. 1. Не забываем создать переменную private String title; 2. В конструкторе делаем так public AgathaChristieBook(String author) { super("Agatha Christie"); this.title = author; } 3. В методе getBook возвращаем this. Но и не забываем поменять тип --> Был -- public Book getBook() стал --public AgathaChristieBook getBook() 4.В метод getTitle() возвращаем нашу переменную из пункта 1. 5.В методе getOutputByBookType() - делаем так if (author.equals("Mark Twain")){ return markTwainOutput; Ну и с AgathaChristie так же. Вот основные пункты которые улучшат вашу жизнь на Джаве раш. Удачи)
Роман18 уровень, Киев
8 мая, 23:48
Подскажите как работает метод getOutputByBookType? У нас есть список books, в него добавляются объекты (Books), которым присвоены названия книг и авторы. Если убрать этот метод, то при выводе списка, будет выведены просто ссылки на объекты, но если оставить этот метод, то выводится Tom Sawyer was written by Mark Twain, Agatha Christie: Hercule Poirot is a detective. Каким образом отображается этот текст, если этот метод нигде не вызывается?
Andrey16 уровень
10 мая, 10:08
Он вызывается в переопределенном методе toString в классе Book
Katruk Dima15 уровень
7 мая, 18:33
Задача по моему мнению лёгкая, решил за 30 мин, с первого раза, но условия как всегда написано так как будто автор старался его написать что бы было трудно понять. Одним словом лучше всего читать условие сверху в низ и снизу вверх по 5 раз.
АртемGeek19 уровень, Москва
7 мая, 05:52
Пока понимал , разобрался: При создании экземпляра класса MarkTwainBook или AgathaChristieBook, обязательно должен вызываться конструктор супер класса от которого он наследуется. то есть либо мы вызываем его через super:
public MarkTwainBook(String ...){
            super(.....);
            title = "..";
        }
Либо мы его не вызываем вообще, в таком случае компилятор вызовет конструктор по умолчанию не явно, тоесть подставит к вам в конструктор подкласса:
super();
А так как в Book его нет( он бы был если бы мы его не переопределяли в Book), то будет вылетать ошибка, поэтому можно просто его создать в дополнение к основному
Book(){
        }
И обратите внимание, author это не title и title это не author ) на этом попутался.
Ivan Tyulpin16 уровень, Москва
5 мая, 21:19
Привет всем! Объясните недальновидному человеку тему про this / getBook() - в чем разница? И то и то указывает на текущий объект. Пытался в инете найти, но увы... Так в чем же особенности использования того и другого, в каких случаях лучше то или то? Если с примерами, то будет вообще прекрасно, если ссылку кинете - тоже буду благодарен :)