【实验】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() {