FAQ 7.04 Isn't the difference between proper and improper inheritance obvious?Apparently not. Improper inheritance is a very common design error. This seems to be because developers base inheritance relationships on their intuition rather than the objective criteria of substitutability. The following inheritance relationships are improper because the derived class either requires more or promises less.
The following inheritance relationships may or may not be proper inheritance depending on the specified behavior of the base class and the derived class.
These examples are explained in Chapter 8. |