继承是对已有的类做一番改造,以此获得一个特殊的版本。简而言之,就是将一个较为抽象的类改造成能适用于某些特定需求的类。因此,对于上面的Wolf和Animal的关系,使用继承更能表达其现实意义。用一个动物来合成一匹狼毫无意义:狼并不是由动物组成的。反之,如果两个类之间有明确的整体、部分的关系,例如Person类需要服用Arm类的方法(Person对象由Arm对象组合而成),此时就应该采用组合关系来实现复用,把Arm作为Person类的组合成员变量,借助于Arm的方法来实现Person的方法,这是一个不错的选择。
总之,继承要表达的是一种“是(is-a)”的关系,而组合表达的是“有(has-a)”的关系。
标签:关系,表达,组合,继承,什么,Person,时候,Arm From: https://www.cnblogs.com/easycoding20211115/p/17102975.html