实验八 抽象类程序设计
- 实验目的
1.了解抽象类的概念、特征、作用
2.掌握抽象类的使用
3.掌握向上转型的用法
二、实验硬、软件环境
Windows计算机和Eclipse软件
- 实验内容及步骤
实验内容:
1.使用接口或者抽象类编写程序实现显示员工基本信息。具体要求如下:
(1)使用接口或者抽象类实现基类Employer(体会接口和抽象类的不同),包含姓名、部门和工资三个属性,显示工资的方法showSalary()和显示奖金的抽象方法showBonus();提示:因每位职工奖金不同,showBonus()方法 定义为抽象方法,只抽象定义,不具体实现;
(2)定义BasicEmployee和GoodEmployee类,重写Employer类中的方法,不同员工有不同的工资和奖金;
(3)定义主类进行测试,要求输入两个不同的员工信息,并输出其个人信息。
输入输出说明:
输入:
张三 前台 5000
李四 开发 6000 4000
输出:
我叫张三,在前台部门,我的工资是5000.0
我是普通员工,没有奖金,加油升级!
我叫李四,在开发部门,我的工资是6000.0
我是优秀员工,我的奖金是4000.0
实验步骤:
(1)创建基类Employer,包含姓名、部门和工资三个属性,显示工资的方法showSalary()和显示奖金的抽象方法showBonus():
public abstract class Employer {
String name;
String bumen;
Double salary;
public abstract void showSalary();
public abstract void showBonus();
}
- 定义BasicEmployee和GoodEmployee类,重写Employer类中的方法,不同员工有不同的工资和奖金:
public class BasicEmployee extends Employer{
@Override
public void showSalary() {
System.out.println("我叫"+this.name+",在"+this.bumen+"部门,我的工资是"+this.salary);
}
@Override
public void showBonus() {
System.out.println("我是普通员工,没有奖金,加油升级!");
}
}
public class GoodEmployee extends Employer{
Double salarys;
@Override
public void showSalary() {
System.out.println("我叫"+name+",在"+bumen+"部门,我的工资是"+salary);
}
@Override
public void showBonus() {
System.out.println("我是优秀员工,我的奖金是"+salarys);
}
}
- 定义主类Test进行测试:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入员工姓名,部门,工资以及奖金:");
Employer basic=new BasicEmployee();
Employer good=new GoodEmployee();
basic.name=sc.next();
basic.bumen=sc.next();
basic.salary=sc.nextDouble();
good.name=sc.next();
good.bumen=sc.next();
good.salary=sc.nextDouble();
GoodEmployee bn=(GoodEmployee) good;
bn.salarys=sc.nextDouble();
basic.showSalary();
basic.showBonus();
good.showSalary();
good.showBonus();
}
}
- 实验结果及分析
实验结果
实验分析
通过本次实验,了解抽象类的概念、特征、作用,掌握了抽象类的使用以及向上转型的用法,抽象类是一种特殊的方法,只有声明,没有具体的实现。一个类如果含有抽象方法,则称这个类为抽象类。抽象类必须在类前用abstract关键字修饰。子类引用的对象转换为父类类型称为向上转型。通俗地说就是将子类对象转为父类对象。此处父类对象可以是接口、抽象类或具体类。