Делегируя отношение с помощью поля outputStream, например, в методе close(), если я правильно все понял, то закроется файл, который указан в fileName ну и перед закрытием выполнится код, до вызова родительского close(). А если вызвать родительский close() с помощью super, то что-то изменится или нет?
public class AmigoOutputStream extends FileOutputStream {
    public static String fileName = "C:fileName1.txt";
    FileOutputStream outputStream;

    AmigoOutputStream(FileOutputStream outputStream) throws IOException {
        super(fileName);
        this.outputStream = outputStream;
    }

    @Override
    public void write(byte[] b) throws IOException {
        outputStream.write(b);
    }

    @Override
    public void write(byte[] b, int off, int len) throws IOException {
        outputStream.write(b, off, len);
    }

    @Override
    public void flush() throws IOException {
        outputStream.flush();
    }

    @Override
    public void write(int b) throws IOException {
        outputStream.write(b);
    }

    @Override
    public void close() throws IOException {
        outputStream.flush();
        String string = "JavaRush © All rights reserved.";
        outputStream.write(string.getBytes());
        outputStream.close();
    }

    public static void main(String[] args) throws FileNotFoundException, IOException {
        String string = "dsfa";
        AmigoOutputStream f = new AmigoOutputStream(new FileOutputStream(fileName));
        f.write(string.getBytes());
        //f.close();
    }

}