什么时候用继承,什么时候用组合呢?

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

总之,继承要表达的是一种“是(is-a)”的关系,而组合表达的是“有(has-a)”的关系。

posted @ 2023-02-08 18:51  英特耐雄纳尔定要实现  阅读(89)  评论(0)    收藏  举报