| Introduction to OOP | Chapter 24: Design Patterns : | next | previous | audio | real | text |
Solution: Combine inheritance and composition. By making an object that both subclasses from another class and holds an instance of the class, can add new behavior while referring all other behavior to the original class.
Example Input Streams in the Java I/O System
// a buffered input stream is-an input stream
class BufferedInputStream extends InputStream {
public BufferedInputStream (InputStream s) { data = s; }
...
// and a buffered input stream has-an input stream
private InputStream data;
}
An instance of BufferedInputStream can wrap around any other type of
InputStream, and simply adds a little bit new functionality.