zh/codegym/task/task15/task1504/Solution.java:48: error: constructor Book in class zh.codegym.task.task15.task1504.Solution.Book cannot be applied to given types;
public MarkTwainBook(String title){
^
required: java.lang.String
found: no arguments
reason: actual and formal argument lists differ in length
package zh.codegym.task.task15.task1504;
import java.util.LinkedList;
import java.util.List;
/*
OOP:图书
*/
public class Solution {
public static void main(String[] args) {
List<Book> books = new LinkedList<>();
books.add(new MarkTwainBook("汤姆历险记"));
books.add(new AgathaChristieBook("大侦探波洛"));
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() + " 是侦探";
String markTwainOutput = getBook().getTitle() + " 的作者是:" + author;
String output = "输出";
//在此编写你的代码
return output;
}
public String toString() {
return getOutputByBookType();
}
}
public static class MarkTwainBook extends Book{
private String title;
private String author = "Mark Twain";
public MarkTwainBook(String title){
this.title = title;
}
public MarkTwainBook getBook() {
return this;
}
public String getTitle() {
return title;
}
private String getOutputByBookType() {
String markTwainOutput = getBook().getTitle() + " 的作者是:" + author;
return markTwainOutput;
}
}
public static class AgathaChristieBook extends Book {
private String title;
private String author = "Agatha Christie";
public AgathaChristieBook(String title) {
this.title = title;
}
public AgathaChristieBook getBook() {
return this;
}
public String getTitle() {
return title;
}
private String getOutputByBookType() {
String agathaChristieOutput = author + ": " + getBook().getTitle() + " 是侦探";
return agathaChristieOutput;
}
}
}