IS-A :"是一个"
HAS-A :"有一个"
当一个类继承自另外一个类时,我们会说这是子类去继承父类。若你想要知道某物是否应该要继承另一物时,则可以用IS-A测试来检验。
例如:
三角形是一个多边形。。。。。。。。。嗯,没错。
外科医生是一个医生。。。。。。。。。嗯,ok。
猫咪是一只猫。。。。。。。。。。。算是吧。
澡盆是一个浴室。。。。。。。。。失败!
大肠没有洗干净。。。。。。。。。失败中的失败!
要确认你的设计是否正确,使用这样测试加以检验。如果不合理,表示你的设计有问题。
浴室与澡盆确实有关联,但不是继承上的关系。浴室与澡盆发生的是HAS-A的关系。如果“浴室有一个澡盆”成立的话,这表示浴室带有澡盆的实例变量。也就是说浴室会有个澡盆的引用,但是浴室并没有继承过澡盆。
关注公众号:工控技术之家,可留言提问相关问题,有需要可发送源代码