欢迎来到天天文库
浏览记录
ID:6140156
大小:75.00 KB
页数:7页
时间:2018-01-04
《3 实验三 类的继承及多态》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验三:类的继承及多态一、实验目的1.掌握类的继承方法及上转型对象的方法调用。2.掌握this和super的区别及使用。3.理解抽象类的概念及作用,掌握接口的声明,实现及接口回调。。二、实验编程内容1.设计一个抽象类,声明有关算术运算的方法,并创建四个子类继承该抽象的类,完成进行加、减、乘、除四则运算。2.编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义Gymnastics类和School类,它们都是ComputerAverage的子类,Gymnastics类中计算选手的平均成绩的方法
2、是去掉一个最低分,去掉一个最高分,然后求平均分。School中计算平均分的方法是直接是总分除以总科目。要求:定义ComputerAverage的对象为上转型对象,并调用重写的方法averge。3.编写一个类,该类有如下一个方法:publicintf(inta,intb){……//要求该方法将返回a和b的最大公约数},再编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个正整数的最小公倍数。要求:在重写的方法的方法体中需要调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b/m)返回;在应用的程序的主类中分别使用父类和子类
3、创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。4编写一个圆锥类,能够计算圆锥的体积,要求圆锥类的构造函数中有一参数是圆类的一个对象。5定义接口Shape,其中包括Area方法。类Circle、Square和Triangle均实现了接口Shape。定义主函数,创建元素个数为3的Shape类型的一维数组,分别为数组元素创建Circle、Square和Triangle类型的对象,最后分别调用各数组元素的Area方法,输出相关信息。6定义一个接口,用于查询课程定义一个类Student,包括如下属性:学号(ID)、姓名(nam
4、e)、性别(Sex)、出生日期(birthDate)、专业(specialty)、课程(course),实现以下方法:每个属性的获取和定义,要求至少包含一个构造方法。定义一个接口类,定义方法query_course_catalog()用来查询课程。编写一个接口,定义相关选课操作,定义Student实现该接口。三、实验运行内容1.类的继承性(1)在某个路径下创建一个文件,定义一个Person类,一个Student类,通过子类扩展父类的功能。【源代码】classPerson{privateStringname;privateintage;pub
5、licvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnname;}}classStudentextendsPerson{privateStringschool;publicvoidsetSchool(Stringschool){this.school=school;}publicStringgetSchool(){returnschool;}}publicclassExtendsDemo{publicstaticvoidmain(Stringargs[]
6、){Studentstu=newStudent();stu.setName("张三");stu.setSchool("清华大学");System.out.println("姓名:"+stu.getName()+",学校:"+stu.getSchool());}}⑵编译并运行该程序,观察运行的结果,参照下图。将姓名和年龄及学校改为自己的,观察运行结果。2.this和super的区别(1)在某个路径下创建一个文件,体会this和super的区别。【源代码】classPerson{publicStringname="张三";}classStude
7、ntextendsPerson{publicStringname="张童";publicvoidprint(){System.out.println("父类中属性:"+super.name);System.out.println("子类中属性:"+this.name);}}publicclassThisSuperDemo{publicstaticvoidmain(Stringargs[]){Studentstu=newStudent();stu.print();}}(2)编译并运行该程序,观察运行的结果,参照下图。3.抽象类⑴在某个路径下创
8、建一个文件,体会重写抽象类中的抽象方法。【源代码】abstractclassPerson{privateStringname;//定义name属性publicPerson(Str
此文档下载收益归作者所有