Dawno, dawno temu były sobie InputStream i OutputStream. Zadeklarowane jako klasy abstrakcyjne. Ale jeśli się im przyjrzeć, to są to całkiem solidne interfejsy. Prawie wszystkie ich metody, poza kilkoma mniej znaczącymi, są abstrakcyjne. Oto moje pytanie: co sprawia, że są one takie wyjątkowe? I dlaczego ktoś zrobił z nich klasy abstrakcyjne?