私有地继承一个类型是在一个类的逻辑实现中使用该类型的另一种方式。私有继承是一个派生类的实现细节。从逻辑角度看,一个私有的基类(就像一个私有的数据成员)对客户端是不可见的。私有继承是一种技术,只可以用来传送基类属性的一个子集。这种很少使用的关系已经被生动地赋予了一个术语WasA,如图1-22所示。
图1-22显示了关于Battleship的一个类定义,Battleship充当ArizonaMemorial的一个私有基类。一旦处于激活服务状态,战舰Arizona就是1941年珍珠港轰炸中损失的战舰之一。目前,Arizona是一个拥有礼品店和展览品的博物馆。
私有继承是一种实现细节,但是公共继承和受保护继承却不是。继承增加了与基类相兼容的类型集合。因此,非私有继承会引入客户端程序通过编程可以访问的信息。公共继承和受保护继承的独特属性使其拥有自己的符号,这将在1.6.1节中介绍。
现在我们已经回顾了所有的逻辑符号,需要开始认真考虑重要的物理设计问题了。设计的逻辑和物理方面是紧密结合的。每个逻辑关系——IsA、Uses-In-The-Implementation和Uses-In-The-Implementaion——都隐含了逻辑实体间的物理依赖。正如我们将在第3章介绍的,最终正是这些逻辑关系决定了系统内的物理依赖。