Java's FilterOutputStream is part of the Stream decorator pattern in Java. It is the intermediate, base decorator class.
From the documentation:
The class FilterOutputStream itself simply overrides all methods of OutputStream with versions that pass all requests to the underlying output stream. Subclasses of FilterOutputStream may further override some of these methods as well as provide additional methods and fields.
My students asked me why this class is concrete, and I am having a hard time coming up with a good reason. Is this just an oversight?
Any ideas?