16、面向对象编程中的关系与继承机制解析

面向对象编程中的关系与继承机制解析

1. 类关联中的角色

在给定的关联中,每个参与类都有一个角色。例如,在 “教授指导学生” 这一关联中,教授的角色是 “导师”,学生的角色是 “被指导者”。不过,我们只会在有助于明确抽象概念时,才为参与关联的对象角色命名。像 “学生选课” 这种关联,就没必要为学生和课程两端的角色命名,因为这些角色名对抽象概念的清晰度提升不大。

2. 多重性

对于类 A 和类 B 之间的给定关联类型 X,多重性指的是与类型 B 的一个给定实例相关联的类型 A 的对象数量。例如,一个学生可以参加多门课程,但一个学生只有一位指导教授。多重性有三种基本类型:一对一、一对多和多对多。
- 一对一(1:1) :在一对一关联中,类 A 的一个实例恰好与类 B 的一个实例相关联,反之亦然。例如,一个学生恰好有一份成绩单,一份成绩单也恰好属于一个学生;一位教授恰好主持一个系,一个系也恰好有一位教授担任系主任。我们还可以进一步规定关联两端类的参与是可选的还是强制的。比如,一位教授可以选择主持一个系,但一个系必须有一位教授担任系主任。这种修订后的关联更符合现实情况,因为并非每个教授都是系主任,但如果一位教授是系主任,那他只能主持一个系。
- 一对多(1:m) :在一对多关联中,类 A 的一个实例可以与类 B 的多个实例以特定方式相关联,但从类 B 的一个实例角度看,只能与类 A 的一个实例相关联。例如,一个系可以雇佣多位教授,但一位教授只能为一个系工作;一位教授可以指导多位学生,但一个学生只能有一位指导教授。这里的 “多个” 可以理解为 “零个或多个(可选)” 或 “一个或多个(强制)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值