泛化关系表示的是面向对象技术中很重要的类的继承机制。它表示关系的源端类型元素继承了目标端元素的所有特征(属性、操作、行为等所有“可重定义的元素”, RedefinableElement)。“继承”和“重定义”使模型元素能够被快速、方便而且灵活的被复用。
泛化关系两端的元素必须类目(Classifier)或它的继承类型。泛化关系源端称为“特定端”(specific),泛化关系的目标端称为“泛化端”(general)。泛化端的类称为特定端类的“基类”、“父类”,或“超类”,特定端的类称为泛化端类的“继承类”、“子类”。
在UML/SysML标准中,也使用“泛化”(Generalizations,Generalization的复数形式)称为一个类的所有父类;“特化”(Specializations)称为一个类的所有直接继承类。在本说明书中,也使用子类“泛化为”父类,表示子类继承父类的意思;过来父类“特化为子类。
继承的属性、操作等特征在前面有个“^”标识,它们在继承类中不允许编辑。如果一定修改它,只能“重定义”(Redefine)它。也就是在继承类中新定义一个属性和特征,而且指定“重定义”了父类的某个特征。
两个模块的泛化关系示例如下图:
在这个例子中ChildBlock继承了ParentBlock(建立了泛化关系),在ChildBlock的属性分区中,有“^”是继承的属性。其中“mo: 显示器[1]”属性重定义了父类的同名称的属性(多重性的限定改为1,只能有一个显示器的意思)。在实现继承属性的时候,自定义的分区也可以继承。如果在自定义分区中增加了自己的属性,则即使不显示继承的属性,也会显示这个分区。
MBSES用户使用说明书