阅读下列说明,回答问题,将解答写在答题纸的对应栏内。 某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。 图4一1是该模块的类图,图中属性和操作前的“+”

admin2021-03-19  41

问题 阅读下列说明,回答问题,将解答写在答题纸的对应栏内。
某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。
图4一1是该模块的类图,图中属性和操作前的“+”  “#”和“-”分别表示公有成员、保护成员和私有成员。

其中:
(1)类Engineer表示普通维修工。
(2)类studentEngineer和seniorEngineer都重新实现了类Engineer的方法calReward()。
(3)方法calReward()根据每个维修工每天的工时数(workTime)、时薪(hourSalary)来计算当天的工时工资。
(4)方法getReward()调用方法calReward()获取工时工资并打印显示。
(5)类System中的方法statReward()首先调用了该类的方法load(),获取本系统工程师列表,然后调用了类Engineer中的方法calReward()。
现拟采用面向对象的方法进行测试。
从面向对象多态特性考虑,测试类System中方法statReward()时应注意什么?

选项

答案测试方法statReward()时,要同时考虑类Engineer、类studentEngineer和类seniorEngineer的calReward()。

解析 由题干描述可知,类System中方法statReward()需要调用Engineer中的方法calReward(),而方法calReward0在其两个子类studentEngineer和seniorEngineer中有各自新的实现。因此,测试方法statReward()时,要同时考虑类Engineer、类studentEngineer和类seniorEngineer的ealReward()。
转载请注明原文地址:https://kaotiyun.com/show/vzPZ777K
0

最新回复(0)