刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

题目:阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。

【20分】

【说明】下图是某小型互联网公司管理系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。


其中:

(1)类Staff表示普通员工。

(2)类 JuniorStaff 和SeniorStaff 表示初级员工和高级员工,这两个类都重新实现了类 Staff的方法 calReward()。

(3)方法calReward()根据每个员工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。

(4)方法getReward ()调用方法calReward ()获取工时工资并打印显示。

(5)类StaffSystem中的方法statReward()中首先调用了该类的方法load(),获取本系统员工列表,然后调用了类Staff中的方法calReward()。

现拟釆用面向对象的方法进行测试。

 

请基于给出的类图,回答问题。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1)关联关系;

(2)泛化关系(或者回答继承关系也可以);

影响:继承的成员函数是否需要测试;对父类的测试是否能搬到子类上。

(3)多态机制

解析:

(1)根据类图中的表示,类StaffSystem和Staff之间是通过实线连接的,这表示它们之间存在关联关系。
(2)类JuniorStaff 和Staff之间是通过空心的三角形实线连接的,这表示泛化关系,也就是继承关系。当子类继承父类的方法并进行修改时,需要进行测试以确保方法的正确性。如果父类的方法被调用,但其中涉及到了子类修改过的其他方法,那么这些父类方法也需要进行测试。
(3)类 JuniorStaff 和SeniorStaff重新实现了类Staff的calReward()方法,这是面向对象编程中的多态机制。多态允许一个父对象引用不同的子对象,并根据子对象的特性以不同的方式运行。在这种情况下,不同的员工类(JuniorStaff和SeniorStaff)可以重写相同的方法(calReward()),以实现各自特定的逻辑和功能。

创作类型:
原创

本文链接:请基于给出的类图,回答问题。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share