实验三 继承与多态
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三继承与多态
一实验目的:
1 掌握类继承与派生的定义和使用
2.掌握多态的概念与使用。
3.掌握成员变量的继承与隐藏。
4.掌握方法的继承、重载和覆盖。
5.理解继承的访问控制机制
6.掌握接口的定义和使用,了解接口的实现方法。
二实验内容与步骤
1.编写一个程序,模拟实现一个微型的CAD程序。该程序的几何形体至少包括圆、三角形和直线。只要求示例几何图形的绘制,不要求实际绘制。
提示:程序中的几何图形包括圆(Circle)、三角形(Triangle)和直线(Line)等许多种类。可将声明抽象类Shape,规定所有的子类对象都应具有的行为,如绘制图形。
对于不同的几何图形,绘制方式会有所不同,在超类Shape中无法具体定义,因此可声明为抽象方法,Shape的所有子类都必须对这个抽象方法进行重写。CADSystem本身由多个几何形体组成。
2.继承和接口相结合的应用,选作其中一个程序:
(1)猫、狗和马都是哺乳动物,而哺乳动物均属动物之列。哺乳动物都是可运动的,与东形式分为走动、奔跑和跳跃三种。运用继承和接口的知识,编写一个程序来模拟上述动物的分层结构及运动行为。
提示:对所有动物而言都有运动行为,可以把运动行为(走动、奔跑和跳跃)声明在接口中,定义接口Movable;哺乳动物(Mammal类)属于动物(Animal类)。
(2)乌鸦会飞但不会说话,大猩猩不会飞但能说话,鹦鹉既会飞又会说话,运用接口的知识,编写一个程序对该问题建模。
提示:模拟说话可以设计一个Talkable接口,在其中声明fly()方法描述说话行为;同理声明“飞”行为;另设计猩猩、乌鸦和鹦鹉类。
三实验要求:
1 整理阅读程序和上机的结果以及体会,总结面向对象程序设计调试和UML建模经验。
(1)实验中遇到那些困难和问题?(工具查找,安装,使用,程序的编辑,调试,运行)
(2)你是如何解决这些问题的?从中可以得到什么启示,有什么收获,教训?
2.完成实验报告:
(1)实验规范:参考北京电子科技学院计算机科学与技术系《软件实验规范》和《计算机软件实验成绩评定参考办法》
(2)程序提交:教师指定位置
(3)截止日期:实验课程完毕
(4)自己在相应目录下创建自己的文件夹,文件夹名称为自己的学号加姓名,例如0121的刘德华,学号是66,其文件夹名为“012166刘德华”
(5)打印或者手写文档提交日期:实验日的下周上课前。
3 学有余力者:
完善实验二中的成绩管理程序:
1.实验二中实现的学生成绩管理程序只能对一门课程的成绩进行处理,但实
际的成绩管理程序应具有更多的功能,譬如程序中需要对多种类型的学生
的成绩进行分析处理,如专科生、本科生等。一般地,专科生的信息除包
括学号、姓名等信息外,还应包括英语、数学、计算机等多门课程的成绩
需要处理;本科生除包括上述信息外,通常还应包括论文信息。(提示:根
据要求,可以识别出程序中存在的对象。这可以通过寻找问题描述中的名
词来进行,这样就可以找到名词:课程、课程成绩、学生、专科生、本科
生、英语等。在此基础上先对这些名词进行必要的取舍后,然后据此设计
类,如课程(Course)、课程成绩(CourseGrade)、学生(Student)、专科生
(CollegeStudent)、本科生(UnderGraduate)
2.在学生成绩管理程序中,成绩的计算及学生信息持久化是很重要
的。尽管对不同类型的学生来说,具体的计算和持久化方式有不
同之处,但具有相似性,因此都需要计算成绩和信息持久化。(提
示:可抽象出成绩计算接口和信息持久化接口(包括信息读入
readRecord、输出writeRecord),用以将接口与实现分离开来。
这样有助于清晰设计思路,避免程序的“混乱”)