В лекции нас учили делать класс обертку так - 1) Создать свой класс-обертку и унаследоваться от того же класса/интерфейса что и оборачиваемый объект. В задании требуется сделать обертку для FileInputStream, при этом я как и положено по пункту один унаследовался от InputStream, но валидатор требует, чтобы я унаследовался от FileInputStream. Но это же будет уже не обертка, а класс-наследник (естественно он расширяет возможности или изменяет методы родительского класса). Так вот вопрос. В формулировке задачи ошибка или такие классы мы тоже называем классами обертками? Или классы-обертки - это все же те, которые не имеют прямого наследование от того класса, который оборачиваем.
public class AmigoOutputStream extends FileOutputStream {
    public static String fileName = "C:/tmp/result.txt";
    private FileOutputStream fileInputStream;
    public AmigoOutputStream(FileOutputStream crack) throws FileNotFoundException {
        super(fileName);
        fileInputStream = crack;
    }