知识卡片

单重分类与多重分类

普通读书笔记卡 · 1944.k

内容

主流编程语言默认对象只属单个类(单个分类),可沿继承链找超类型;UML还支持多重分类:对象可同时具备多个未必通过继承相连的类型,如一个人可同时是女性、医生、病人,不需为每种合法组合预先定义具体类型。多重分类不同于多重继承:多重继承说类型可有多个超类型,但对象仍须归属单一类型;多重分类允许对象跨多个类型,不要求先定义组合类型。

参考来源

- 位置:《UML精粹:标准对象建模语言简明指南(第3版)》第5章《类图:进阶概念》(源文件:_epub-src/EPUB/4.xhtml) - 结论依据:原文定义"在单个分类(single classification)中,对象属于单个类型,可能从超类型继承。在多重分类(multiple classification)中,对象可以由若干类型描述",并区分"多重分类不同于多重继承。多重继承说一个类型可以有许多超类型,但必须为每一个对象定义单个类型"。 - 原始内容:在单个分类(single classification)中,对象属于单个类型,可能从超类型继承。在多重分类(multiple classification)中,对象可以由若干类型描述,这些类型未必通过继承连接……多重分类不同于多重继承。多重继承说一个类型可以有许多超类型,但必须为每一个对象定义单个类型。