<!DOCTYPE html><html><body><div dir="auto">Hi,<br><br>One thing that bugs me a lot is how the Stream hierarchy is defined. Why is ReadWriteStream a subclass of WriteStream where all the methods for reading have to be reimplemented and duplicated from ReadStream?<br><br>I've read the corresponding chapter in the Blue Book but it just describes the classes, doesn't explain why it's done this way.<br><br>The way I see it, it makes more sense that ReadStream and WriteStream be more specialized Streams which subclass ReadWriteStream and overrides the unneeded methods to raise SholdNotImplement. Like this:<br><br>Stream<br>    PositionableStream<br>        ReadWriteStream<br>            ReadStream<br>            WriteStream<br><br>What am I missing?<br><br>I'm not proposing a change or anything like that. It's just that the curiosity to understand this is killing me :)</div><div dir="auto"><br>--<br>Att.<br>Wéslleymberg Lisboa<br>Graduado em Sistemas de Informação<br>Docente no IFFluminense - Campus Itaboraí<br>Ex-Bolsista de IC do Núcleo de Computação Científica (NC2-IFF) - Projeto IFF Aerospace<br>Github: <a href="https://github.com/weslleymberg">https://github.com/weslleymberg</a><br>Tel.: +55 22 99931-2376</div></body></html>