Написал в целом верное решение, но в одном моменте допустил ошибку, потому что не совсем разобрался. Так выглядит конструктор суперкласса
abstract static class Book {
    private String author;

    public Book(String author) {
        this.author = author;
    }
Я написал вот так изначально
public static class MarkTwainBook extends Book{
    private String author="Mark Twain";
    public String title;
    public MarkTwainBook(String title){
        this.title=title;
    }
Вот так выглядит правильный конструктор
public MarkTwainBook(String title){
    super("Mark Twain");
    this.title=title;
}
Компилятор вылетал с ошибкой по конструкторам. Долго не мог понять в чем дело. Правильно ли я понимаю, что всегда первым вызывается конструктор суперкласса, а потом уже наследника? а что мне делать если я не хочу вообще вызывать конструктор суперкласса? Так можно?