package com.javarush.task.task15.task1504;
//Don't overthrow God's work for food's sake. All things indeed are clean,
//however it is evil for that man who creates a stumbling block by eating. (Romans 14:20)
import java.util.LinkedList;
import java.util.List;
/*
ÐÐÐ - книги
*/
public class Solution {
public static void main(String[] args) {
List books = new LinkedList();
books.add(new MarkTwainBook("Tom Sawyer"));
books.add(new AgathaChristieBook("Hercule Poirot"));
System.out.println(books);
}
abstract static class Book {
private String author;
public Book(String author) {
this.author = author;
}
public abstract Book getBook();
public abstract String getTitle();
private String getOutputByBookType() {
String agathaChristieOutput = author + ", " + getBook().getTitle() + " is a detective";
String markTwainOutput = getBook().getTitle() + " book was written by " + author;
String output = "output";
if (this instanceof AgathaChristieBook) {//Add your code here
output = agathaChristieOutput;
} else {output = markTwainOutput;}
return output;
}
public String toString() {
return getOutputByBookType();
}
}
public static class MarkTwainBook extends Book {
public String title;
public MarkTwainBook(String title) {
super("Mark Twain");
this.title = title;
}
public MarkTwainBook getBook() {
return this;
}
public String getTitle() {
return title;
}
}
public static class AgathaChristieBook extends Book {
public String title;
public AgathaChristieBook(String title) {
super("Agatha Christie");
this.title = title;
}
public AgathaChristieBook getBook() {
return this;
}
public String getTitle() {
return title;
}
}
}
/*
ÐÐÐ - книги
1. СоздайÑе public static клаÑÑ MarkTwainBook, коÑоÑÑй наÑледÑеÑÑÑ Ð¾Ñ Book. ÐÐ¼Ñ Ð°Ð²ÑоÑа [Mark Twain].
ÐаÑамеÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑоÑа â название книги (title).
2. РклаÑÑе MarkTwainBook ÑеализÑйÑе вÑе абÑÑÑакÑнÑе меÑодÑ.
3. ÐÐ»Ñ Ð¼ÐµÑода getBook измениÑе Ñип возвÑаÑаемого знаÑÐµÐ½Ð¸Ñ Ð½Ð° более подÑ
одÑÑий.
4. СоздайÑе по аналогии AgathaChristieBook. ÐÐ¼Ñ Ð°Ð²ÑоÑа [Agatha Christie].
5. РклаÑÑе Book ÑеализÑйÑе Ñело меÑода getOutputByBookType Ñак, ÑÑÐ¾Ð±Ñ Ð¾Ð½ возвÑаÑал:
5.1. agathaChristieOutput Ð´Ð»Ñ ÐºÐ½Ð¸Ð³ ÐгаÑÑ ÐÑиÑÑи;
5.2. markTwainOutput Ð´Ð»Ñ ÐºÐ½Ð¸Ð³ ÐаÑка Твена.
ТÑебованиÑ:
1.âÐлаÑÑ Solution должен ÑодеÑжаÑÑ public static клаÑÑ MarkTwainBook.
2.âÐлаÑÑ MarkTwainBook должен бÑÑÑ Ð¿Ð¾Ñомком клаÑÑа Book.
3.âРклаÑÑе MarkTwainBook должен бÑÑÑ ÐºÐ¾ÑÑекÑно Ñеализован конÑÑÑÑкÑÐ¾Ñ Ñ Ð¾Ð´Ð½Ð¸Ð¼ паÑамеÑÑом Ñипа String(название книги).
4.âÐонÑÑÑÑкÑÐ¾Ñ ÐºÐ»Ð°ÑÑа MarkTwainBook должен вÑзÑваÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¾Ñ ÐºÐ»Ð°ÑÑа пÑедка(Book) Ñ Ð¿Ð°ÑамеÑÑом "Mark Twain"..
5.âÐеÑод getBook в клаÑÑе MarkTwainBook должен имеÑÑ Ñип возвÑаÑаемого знаÑÐµÐ½Ð¸Ñ MarkTwainBook и возвÑаÑаÑÑ ÑекÑÑий обÑекÑ.
6.âÐлаÑÑ Solution должен ÑодеÑжаÑÑ public static клаÑÑ AgathaChristieBook.
7.âÐлаÑÑ AgathaChristieBook должен бÑÑÑ Ð¿Ð¾Ñомком клаÑÑа Book.
8.âРклаÑÑе AgathaChristieBook должен бÑÑÑ ÐºÐ¾ÑÑекÑно Ñеализован конÑÑÑÑкÑÐ¾Ñ Ñ Ð¾Ð´Ð½Ð¸Ð¼ паÑамеÑÑом Ñипа String(название книги).
9.âÐонÑÑÑÑкÑÐ¾Ñ ÐºÐ»Ð°ÑÑа AgathaChristieBook должен вÑзÑваÑÑ ÐºÐ¾Ð½ÑÑÑÑкÑÐ¾Ñ ÐºÐ»Ð°ÑÑа пÑедка(Book) Ñ Ð¿Ð°ÑамеÑÑом "Agatha Christie".
10.âÐеÑод getBook в клаÑÑе AgathaChristieBook должен имеÑÑ Ñип возвÑаÑаемого знаÑÐµÐ½Ð¸Ñ AgathaChristieBook и возвÑаÑаÑÑ ÑекÑÑий обÑекÑ.
11.âÐеÑод getTitle в клаÑÑаÑ
AgathaChristieBook и MarkTwainBook должен возвÑаÑаÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ конкÑеÑной книги.
12.âÐеÑод getOutputByBookType должен возвÑаÑаÑÑ ÐºÐ¾ÑÑекÑнÑÑ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ Ð¾Ð±ÑекÑов Ñипа AgathaChristieBook.
13.âÐеÑод getOutputByBookType должен возвÑаÑаÑÑ ÐºÐ¾ÑÑекÑнÑÑ ÑÑÑÐ¾ÐºÑ Ð´Ð»Ñ Ð¾Ð±ÑекÑов Ñипа MarkTwainBook.
14.âРклаÑÑе MarkTwainBook должно бÑÑÑ Ñоздано поле title Ñипа String(название книги).
15.âРклаÑÑе AgathaChristieBook должно бÑÑÑ Ñоздано поле title Ñипа String(название книги).
package com.javarush.task.task15.task1504;
import java.util.LinkedList;
import java.util.List;
*
ÐÐÐ - книги
*
public class Solution {
public static void main(String[] args) {
List books = new LinkedList();
books.add(new MarkTwainBook("Tom Sawyer"));
books.add(new AgathaChristieBook("Hercule Poirot"));
System.out.println(books);
}
abstract static class Book {
private String author;
public Book(String author) {
this.author = author;
}
public abstract Book getBook();
public abstract String getTitle();
private String getOutputByBookType() {
String agathaChristieOutput = author + ", " + getBook().getTitle() + " is a detective";
String markTwainOutput = getBook().getTitle() + " book was written by " + author;
String output = "output";
//Add your code here
return output;
}
public String toString() {
return getOutputByBookType();
}
}
}
*/