An extensive discussion of subtyping, insidious problems with subclassing, and practical rules to avoid them.