假设一个Message是一种String,也就是说,Message类型的对象可以用在String对象所需要的任何地方。
正如我们从图1-16a的定义中可以看到的,类Message继承了String类,在图1-16b中用一个箭头表示这种关系:
箭头的方向是很重要的,它指向隐含依赖的方向。类D依赖类B,因为类D由类B派生而来,类B必须先出现,使得类D把类B命名为一个基类:
你常常会看到箭头指向相反的方向,这可能会让人费解。箭头显示了用标签表示的两个实体间的一种不对称关系(在此例中是“IsA”)。如果用其他方式画箭头,从逻辑上讲我们不得不将关系名字改成别的,例如“派生(Derives)”或“是…的基类(Is-A-Base-Class-Of)”:
这种可替代的符号不太受欢迎,因为箭头所指的方向与隐含依赖的方向相反。
因为物理依赖分析对于好的设计是必不可少的,所以我们采用使用IsA标签和指向隐含依赖方向的箭头的符号。图1-17中提供的继承符号的最后一个图是用经典形状示例表示的。