2021-04-26

实验八  抽象类程序设计

  • 实验目的

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();

}

  1. 定义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);

    }

}

  1. 定义主类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关键字修饰。子类引用的对象转换为父类类型称为向上转型。通俗地说就是将子类对象转为父类对象。此处父类对象可以是接口、抽象类或具体类。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

——风吹花落——

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值