Добрый день, компилятор ругается на конструкторы книг Марка Твена и Агаты Кристи.
не могу понять где именно ошибка. Вот что выдаёт компилятор
constructor Book in class com.javarush.task.task15.task1504.Solution.Book
cannot be applied to given types; required: java.lang.String found: no arguments reason:
actual and formal argument lists differ in length:
Solution.java, line: 50, column: 43
cannot find symbol symbol: method Book(java.lang.String):
Solution.java, line: 51, column: 18
constructor Book in class com.javarush.task.task15.task1504.Solution.Book
cannot be applied to given types; required: java.lang.String found: no arguments reason:
actual and formal argument lists differ in length:
Solution.java, line: 65, column: 48
cannot find symbol symbol: method Book(java.lang.String):
Solution.java, line: 66, column: 18
а вот что у меня в коде
package com.javarush.task.task15.task1504;
import java.util.LinkedList;
import java.util.List;
/*
ООП - книги
*/
public class Solution {
public static void main(String[] args) {
List<Book> books = new LinkedList<Book>();
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;
if(this instanceof AgathaChristieBook)
return agathaChristieOutput;
if(this instanceof MarkTwainBook)
return markTwainOutput;
String output = "output";
//Add your code here
return output;
}
public String toString() {
return getOutputByBookType();
}
}
public static class MarkTwainBook extends Book{
private String title;
public MarkTwainBook(String title){
super.Book("Mark Twain");
this.title = title;
}
public MarkTwainBook getBook(){
return this;
}
public String getTitle(){
return this.title;
}
}
public static class AgathaChristieBook extends Book{
private String title;
public AgathaChristieBook(String title){
super.Book("Agatha Christie");
this.title = title;
}
public AgathaChristieBook getBook(){
return this;
}
public String getTitle(){
return this.title;
}
}
}