Почему перезаписанные методы мы вызываем через переменную
FileOutputStream orgignalFos;
 //some code
public void flush() throws IOException {
        orgignalFos.flush();
    }
//some code
а не вот так
FileOutputStream orgignalFos;
 //some code
public void flush() throws IOException {
        super.flush();
    }
//some code