2019-2020 山东大学软件学院面向对象设计与分析
ps:今年多了选择题,而且很坑。听去年说写代码的部分是给了大体的框架 只
需要把相应的地方填起来就好,今年没给框架,全部自己写。
一、填空
1.继承有八种形式,其中()和()构成了继承最理想的方式,()
()()()()是不好的继承方式,是否支持()来选择面向对象语
言(这个我忘记怎么说的了,我也不知道这是哪个知识点)。
2.多态有哪四种()()()()。
3.多态变量有哪四种()()()()。(不记得有学过)
二、简答
1.简述三种内存分配方式
2.优先使用继承还是组合,为什么
三、重载
1.简述编译器匹配步骤
2.
(哪个以 P 开头的 Food 忘记怎么拼了,我也不认识那个单词)
有以下方法(我就用首字母代替了)
order(F,V)
order(P,F)
order(P,C)
order(R,V)
有相关的一系列对象,判断一下方法执行哪个,并说明理由
order(aF,aC)
order(aR,aF)
order(aF,aF)
order(aR,aC)
四、写代码。
Sparrow 有 fly 方法,Cat 有 run 方法,这两个类不能改写,不能继
承,要求 Sparrow 和 Cat 对象可以放到一个列表中,并统一使用 move
方法。
五、开关控制白炽灯类图如下:
1.开关不仅能控制白炽灯,还能控制日光灯、LED 灯等,进行重构。
画类图,说明设计优点。
2.再进一步扩展。开关不仅能控制灯,还能控制热水器、空调、电视
等,进行重构。画类图,说明设计优点。
六、针对以下场景,选择设计模式、画类图、说明优点。
1.公司要卖不同的房型
2.房屋卖出去,不同经理会收到消息
3.用户买房之后,自己要装修,刷墙、铺地板等
七、电影院售票系统
学生有学生票八折、儿童票价减十、VIP 会员减半还有积分制度。
系统可能还会采用更多的策略。
选择设计模式、画类图、写优点、写代码