面向对象分析中,类与类之间的 "IS-A"关系的是一种(泛化关系),类与类之间的"IS-PART-OF"关系是一种(聚合关系)。
在面向对象分析与设计中,类之间的核心关系主要包括泛化、聚合(及组合)、关联、依赖四类。其中泛化关系对应“IS-A”语义,本质是类的继承关系,体现一般与特殊的层级逻辑,子类可继承父类的属性与行为以实现代码复用,比如“鸟类是动物的一种”就属于这类关系;聚合关系对应“IS-PART-OF”的松散整体-部分语义,部分对象可脱离整体独立存在,比如“键盘是电脑的一部分”,与之类似的组合关系则是更紧密的整体-部分关联,部分无法脱离整体单独存在,比如“心脏是人体的一部分”。此外,依赖关系是临时的功能调用关联,是最弱的类间关系,比如某个类的方法临时使用另一个类的对象来完成功能;关联关系则是类间长期的固定连接,比如“学生属于某个班级”,关系强度介于依赖与聚合之间。
本题考察的是面向对象分析中的类关系。
在面向对象设计中,类之间有多种不同的关系,包括依赖、关联、聚合、组合和泛化等。
问题1:
A选项依赖关系:表示一个类的实现需要依赖另一个类的某些功能,通常是临时性的,不表示“IS-A”语义,错误。
B选项关联关系:表示两个类之间存在连接关系,但不具备继承语义,错误。
C选项泛化关系:即继承关系,表示子类是父类的一种类型,对应“IS-A”关系,例如“狗是动物的一种”,正确。
D选项聚合关系:表示整体与部分的关系,并非继承语义,错误。
所以选择 C。
问题2:
A选项依赖关系:不表示“部分—整体”关系,错误。
B选项关联关系:泛指对象之间的联系,不特指组成关系,错误。
C选项泛化关系:表示继承关系,不是“IS-PART-OF”,错误。
D选项聚合关系:表示整体与部分的松散组合关系,即一个对象是另一个对象的组成部分,对应“IS-PART-OF”,正确。
所以选择 D。
