Java实验:继承与多态(一)

实验要求

  1. 掌握类的继承
  2. 掌握接口的定义与实现

实验内容

  1. 计算工资

要为某个公司编写雇员( n个雇员)支付月工资,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资:

(1)经理(Manager):有固定月工资属性,每月工资为固定的工资。

(2)销售人员(Salesman):有月基本工资和月销售提成属性,每月工资是在基本工资的基础上还有销售提成。

编写一个Java Application程序,计算出公司每月为雇员支付的工资总和。

提示:雇员类(Employee) 有姓名name和工号num属性,同时有一个抽象方法int ComputeSalary( )来计算薪资。

运行样例可参考下图:

实现思路

新建Employee类,设置两个继承类Manager和Salesman,在继承类复写ComputeSalary( )方法,新建数组Employee存放输入的实例,在实例中把薪水相加,最后输出add。

程序代码(部分展示)

public class Main {
public static void main(String []args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
Employee e[]=new Employee[n];
int add = 0;
String a1="经理";
String a2="销售";
//Employee[] e=new Employee[n+1];
for(int i=0;i<n;i++) {
String s=sc.next();
if(s.equals(a1)) { 
e[i]=new Manager(sc.next(),sc.nextInt(),sc.nextInt());
add+=e[i].ComputeSalary();
}
else if(s.equals(a2)){
e[i]=new Salesman(sc.next(),sc.nextInt(),sc.nextInt(),sc.nextInt());
add+=e[i].ComputeSalary();
}
}
System.out.printf("%d",add);
//System.out.printf("%S",add);
}
}

结果截图

实验心得

  1. 比较字符要用equals不能用“==”
  2. New 一个实例在循环中和循环外是不一样的,在循环外会不断被新数字替代,只保留最后一个数字,在循环内会生成n个实例但无法被保存很久,新数字输入时会被清空,避免在循环体中使用new实例
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值