【实验】java继承和多态实验报告
- 格式:docx
- 大小:16.95 KB
- 文档页数:5
文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
1 【关键字】实验
java继承和多态实验报告
篇一:Java实验五继承与多态
实验五 继承与多态
一、实验目的
1. 掌握抽象类的声明;
2. 掌握多态的执行机理;
3. 掌握上转型的使用;
4. 掌握构造方法的执行机理;
5. 面向抽象的编程;
二、实验内容
1. 假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,
如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计:
(1)设计一个基类Student描述学生的共同特征。
(2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。
(3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。
(4)设计一个尝试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。
2. 假定要为某个公司编写雇员(40个雇员)工资支付程序,这个公司有各种类型
的雇员(Employee),不同类型的雇员按不同的方式支付工资:
(1)经理(Manager)——每月获得一份固定的工资
(2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成。
(3)一般工人(Worker)——则按他每月工作的天数计算工资。
根据上述要求试用类的继承和相关机制描述这些功能,并编写一个Java Application程序,演示这些类的用法。(提示:应设计一个雇员类(Employee)描述所有雇员的共图特性,这个类应该提供一个计算工资的抽象方法ComputeSalary( ),使得可以通过这个类计算所有雇员的工资。经理、销售人员和一般工人对应的类都应该继承这个类,并重新定义计算工资的方法,进而给出它的具体实现。(用对象数组)
三、实验报告涉及以下内容
1. 继承中父子构造方法的执行关系
2. 重写
3. super的应用
4. 上转型
5. 多态
篇二:java实验报告2 继承多态 封装
实验报告 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
2 学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新实验日期:实验成绩:
一、实验项目名称抽象、封装与类(一)
二、实验目的
1. 掌握抽象、封装、继承和多态
2. 熟练掌握如何自定义一个类。
(本文来自: 小草 范文 网:java继承和多态实验报告) 3. 掌握类的访问权限
4. 掌握类成员的访问控制
三、实验基本原理
四、主要仪器设备及耗材
Myclipse
五、 实验步骤
1、 调试程序例3-4
2、 编写如下程序。
(1)定义一个表示学生的类Student,包括属性“学号”、“班号”、“姓名”、“性别”、“年龄”;方法“获得学号”、“获得班号”、 “获得姓名”、“获得性别”、 “获得年龄”、 “修改年龄”。
(2)为Student类定义构造函数初始化所有属性,增加一个方法public String toString(),把Student类对象的所有属性信息组合成一个字符串输出。
(3)在main()中创建Student类对象,尝试自定义类。
六、实验数据及处理结果
1、package ncu;
public class Exam3_4 {
} static double d; public static void main(String args[]){ int i; Exam3_4 pt=new Exam3_4();
i=5; pt.changeInt(i); "int type value is:"+i); pt.d=6.25; pt.changeDouble(pt); "double type value
is"+d); } public void changeInt(int v) {v=10;} public void changeDouble(Exam3_4 ref) {ref.d=10.5;}
2、package ncu;
public class student {
private int id; private String name; private String tel; private String addr; private static int
total; public int getid(){ } public void setid(int id){ return this.id;
} this.id=id; public String getname(){ } return name;
public void setname(String name){=name; }
public String gettel(){
return tel; }
public void settel(String tel){this.tel=tel; }
public String getaddr(){
return addr; }
public void setaddr(String addr){this.addr=addr;
} 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
3 public student(){
total++;
id=total; }
public student(String name){total++;
id=total;
=name;
篇三:java 实验5 接口多态 实验报告
实验五接口、多态与内部类
实验目标:
1、 理解接口、塑型、多态的概念并能熟练应用;
2、 熟练掌握接口的定义和使用;
3、 深刻理解构造方法的调用顺序,理解编写时需要注意的问题;
4、 了解并学会使用内部类
实验任务:
1、 继承时的多态:目测给出下面代码的执行输出结果,并简单解释每一行输出的原因。
答:首先,该程序的主函数是Vehicle v=new Vehicle();即先声明并实例化一个汽车对象,而v.test();则是调用汽车的尝试方法;而test方法里,Vehicle vc=new Car();是将上面的汽车指向了一个具体的小汽车对象;Bus vb=new Bus();将公共汽车指向了一个具体的公共汽车对象;drive();调用汽车的驾驶方法;vc.drive();调用小汽车的驾驶方法;vb.drive();调用公共汽车的驾驶方法;而vc.brake();vb.brake();则是直接调用汽车的刹车方法。
因而运行结
果如下:
A new bus.
Vehicle is driven
Car is driven
Bus is driven
Vehicle is braked
Vehicle is braked
2.针对下面的简单的类图,从面向对象的角度,将Instrument定义成接口,应怎样实现。编写能完成如图功能的程序,并再编写一个简单的应用程序进行多态性尝试。(参考例子5-9;实验4该题是要求用抽象类来实现,在此要求用接口实现,还要进行多态性尝试)
说明:Instrument表示乐器、Wind表示管乐器、Percussion敲击乐器、Stringed表示弦乐器、Woodwind表示木管乐器、Brass表示铜管乐器。
要求:(1)Instrument为接口,Wind为抽象类,其他为普通类。这里尝试的目的是:我们知道当一个普通类实现一个接口时,必须实现该接口的全部方法,但当这个类是抽象类时,我们还需要实现该接口全部方法吗?如果不需要实现?那么是否直接不理这个方法就一,还是要将这个方法在自己类内部再标记一次为抽象方法。(听起来有点晕,尝试很简单的,有时百读不如一试) 文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.
4 (2)请编写尝试代码,对实现Instrument接口的各个类进行多态尝试,具体可参考课本例子。所谓多态尝试就是向上自动塑型,以及向下动态绑定,而动态绑定的基本规则是实例方法“由下往上”寻找绑定,类方法和类属性成员“由上往下”寻找绑定。(对其概念不清晰的请留意课本知识与课堂讲解)
该题代码如下:
package zi;
interface Instrument {
void play();
String what();
void adjust();
}
abstractclass Wind implements Instrument {
publicvoid play() {
"Wind.play()");
}
publicabstract String what() ;
publicvoid adjust() {
}
}
class Percussion implements Instrument {
publicvoid play() {
"Percussion.play()");
}
public String what() {
}
}
class Stringed implements Instrument {
publicvoid play() {
"Stringed.play()");
}
public String what() {
}
}
class Brass extends Wind {
publicvoid play() {
"Brass.play()");
}
public String what() {