java实验报告第8章_java实验报告8.doc

这篇实验报告详细介绍了如何使用Java实现抽象类和抽象方法,包括一个包含3个抽象方法的抽象类A及其3个子类A1、A2、A3的实例。在主类ZuoYe5_2中,通过上转型对象调用子类的方法展示多态性。此外,还设计了一个人员类Person作为抽象类,派生出助教、讲师、副教授和教授类,实现了根据不同职位计算工资的多态方法pay。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值