Вот в этой задаче использовав этот код
public void close() throws IOException {
    String a = "JavaRush © All rights reserved.";
    fileOutputStream.flush();
    fileOutputStream.write(a.getBytes());
    fileOutputStream.close();
}
Задача проходит А вот этот:
public void close() throws IOException {
       String a = "JavaRush © All rights reserved.";
       fileOutputStream.flush();
       fileOutputStream.write(a.getBytes());
       super.close();
   }
Не проходит. Вопрос: получается вызывая метод класса-родителя мы не делегируем выполнение метода close тому кого мы оборачиваем, а выполняем свой переопределённый метод close уже у объекта amigoOutputStream ?