合成的基础类(underlying class)是指构成一个(合成)类的那些组件(component)类。比如:
class A { … }
class B { … }
class C
{
private A a = new A();
private B b = new B();
…
}
其中,类A和类B就是类C的基础类。它们不能是抽象类型是因为它们的对象创建必须由类C负责,否则就不是合成(composition)关系而是聚合(aggregation)关系。(合成与聚合的区别请参见本书第334页:合成是基于值语义的包含,聚合是基于引用语义的包含)