继承的基本原则
继承设计应自底向上,设计初始阶段不考虑继承关系,遇多个类存在共同行为(实例变量及方法)时考虑是否应该使用继承,即两个类能否与上级类通过IS-A测试。
我认为继承设计不能自顶向下,即通过IS-A测试的均采用继承关系。自顶向下将导致设计过于繁琐,没有设计依据,不像遇相同而思继承那样有迹可寻。而且继承和分类一样,继承标准的不同也会导致设计无从下手。以上观点有待检验。
IS-A测试
三角形是一个多边形(是的)
外科医生是一个医生(是的)
澡盆是一个浴室(额)
虽然继承是面向对象程序设计的一项关键特征,但却不一定是达到重用目的的最佳方式,常用的设计模式也会提出更微妙且更有适应性的选择。
继承的意义
通过提取出一组类间共同的抽象性,能够避免程序中的重复代码。如果共同的部分需要调整,就只有一个地方要修改而已,不会遗漏。
参考文档:Head First Java