java实验报告8
实 验 报 告
课程名称JAVA程序设计实验名称 抽象类和抽象方法实验时间2015年 月 (系)计算机软件学院专 业计算机科学与技术实验名称抽象类和抽象方法指导教师周莉实验类型上机实验学时2实验时间2015-5-7实验目的
1. 掌握多态的实现
2. 掌握抽象类和抽象方法的定义和使用二、实验环境(实验设备)
1. 每位学生配备计算机一台
2. 计算机需安装好JDK和Jcreator三、实验内容
1. 首先编写一个抽象类,要求该抽象类有3个抽象方法:
Public abstract void f( int x);
Public abstract double g(double x);
Public abstract double h(double x);
然后分别给出这个抽象类的3个子类。
要求:在应用程序主类中使用这些子类创建对象,再让它们的上转型对象调用方法f()、g()和h()。
(1)源程序:
abstract class A{
public abstract void f(int x);
public abstract void g(int x,int y);
public abstract double h(double x);
}
class A1 extends A{
public void f(int x){
System.out.println(x);
}
public void g(int x,int y){
int z=x+y;
System.out.println(z);
}
public double h(double x){
return x*x;
}
}
class A2 extends A{
public void f(int x){
System.out.println("Hello:"+x);
}
public void g(int x,int y){
int z=x-y;
System.out.println(z);
}
public double h(double x){
return Math.sqrt(x);
}
}
class A3 extends A{
public void f(int x){
System.out.println("你好:"+x);
}
public void g(int x,int y){
double z=(double)x/y;
System.out.println(z);
}
public double h(double x){
return 1/x;
}
}
public class ZuoYe5_2{
public static void main(String args[]){
A a=new A1();
a.f(10);
a.g(12,20);
System.out.println(a.h(100));
a=new A2();
a.f(10);
a.g(12,20);
System.out.println(a.h(100));
a=new A3();
a.f(10);
a.g(12,20);
System.out.println(a.h(100));
}
}
(2)实验结果:
2. 设计一个人员类(Person),其中包含一个方法pay,代表人员的工资支出。再从Person类派生出助教类(Assistant)、讲师类(Instructor)、副教授类(Assistant Professor)和教授类(Professor)。其中:工资支出=基本工资+授课时数*每课时兼课金。
但助教基本工资为800,每课时兼课金25,讲师基本工资为1000,每课时兼课金35,
副教授基本工资为1200,每课时兼课金40,教授基本工资为1400,每课时兼课金50。
将Person定义为抽象类,pay为抽象方法,设计程序实现多态性。
源程序:
abstract class Person{
protected String name;
protected double classum;
public Person(){
this.name="";
classum=0;
}
public Person(String name,double classum){
this.name=name;
this.classum=classum