继承的优点之一就是,它支持渐进式的开发。添加新的代码的时候,不会给老代码带来bug;实际上新的bug全都被圈在新代码里。通过继承已有的,已经能正常工作的类,然后再添加一些数据成员和方法(以及重新定义一些原有的方法),你可以不去修改那些可能还有人在用的老代码,因而也就不会造成bug了。一旦发现了bug,你就知道它肯定是在新代码里。相比要求修改老代码,新代码会短很多,读起来也更简单。
类的隔离竟会如此彻底,这真是太令人惊讶了。你甚至不需要源代码就能进行复用。你得明白,程序开发就像人的学习一样,是一个渐进的过程。不论你做过多少分析,不实际做项目的的话,还是得不到答案。如果你能摒弃像建玻璃摩天楼那样比起公寓的开发方式,而采用类似生物进化的,让那个项目逐步的增长的开发方式,那么你就会获得更大的成功——以及更多的及时反馈。
尽管在实验阶段,继承是一种非常有用的技术,但是当项目进入稳定阶段之后,你就得用一种新的眼光来审视类的继承体系了,你要把它压缩成一个合乎逻辑的结构。记住,在这些错综复杂的关系后面,继承实质上是在表达这样一种关系:新的类是一种旧的类。程序不应该围着bit转,它应该从问题空间出发,通过创建和操控形形色色的对象来表达一种解决问题的方法。