类的组合:在一个类中以另一个类的对象作为数据成员的,称为类的组合。
类的继承与组合都是软件重用(构造新的类的时候可以有效利用已有的类)的重要方式,可以有效地利用已有类的资源。
继承时纵向的,组合是横向的。
原则:
1. 如果类B和类A毫不相关,不可以为了让B的功能更多些而让B继承A的功能。
2. 如果类B有必要使用A的功能,则要分两种情况考虑:
(1)如果在逻辑上B是A的“一种”(a kind of),则允许B继承A的功能。
(2)如果在逻辑上A是B的“一部分“(a part of),则不允许B继承A的功能,而是要用A和其他东西组合出B。