# 封装,抽象类,继承,重写java编程题 问题描述 ``` 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。 方法:getSalary(int
封装,抽象类,继承,重写java编程题
问题描述
某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。
方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。
SalariedEmployee:Employee的子类,拿固定工资的员工。 属性:月薪
HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。
属性:每小时的工资、每月工作的小时数
SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。 属性:月销售额、提成率
BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。 属性:底薪。
写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个方法,打印出某月每个员工的工资数额。
注意:要求把每个类都做成完全封装,不允许非私有化属性。
问题java代码
import java.util.Scanner;public abstract class Employee {private String name;private int birthdayMonth;public Employee() {super();}public Employee(String name, int birthdayMonth) {super();this.name = name;this.birthdayMonth = birthdayMonth;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getBirthdayMonth() {return birthdayMonth;}public void setBirthdayMonth(int birthdayMonth) {this.birthdayMonth = birthdayMonth;}public abstract double getSalary(int month);
}class SalariedEmployee extends Employee {private double monthSalary;public SalariedEmployee() {super();}public SalariedEmployee(String name, int birthdayMonth, double monthSalary) {super(name, birthdayMonth);this.monthSalary = monthSalary;}public double getMonthSalary() {return monthSalary;}public void setMonthSalary(double monthSalary) {this.monthSalary = monthSalary;}@Overridepublic double getSalary(int month) {if (month == getBirthdayMonth()) {monthSalary = monthSalary + 100;} else {}double salary = monthSalary;return salary;}
}class SalesEmployee extends Employee {private double saleroom;// 销售额private double rate;// 提成率public SalesEmployee() {super();}public SalesEmployee(String name, int birthdayMonth, double saleroom, double rate) {super(name, birthdayMonth);this.saleroom = saleroom;this.rate = rate;}public double getSaleroom() {return saleroom;}public void setSaleroom(double saleroom) {this.saleroom = saleroom;}public double getRate() {return rate;}public void setRate(double rate) {this.rate = rate;}@Overridepublic double getSalary(int month) {double salary;if (month == getBirthdayMonth()) {salary = (saleroom * rate) + 100;} else {salary = (saleroom * rate);}return salary;}
}class BasePlusSalesEmployee extends SalesEmployee {private double basicSalary;public BasePlusSalesEmployee() {super();}public BasePlusSalesEmployee(String name, int birthdayMonth, double saleroom, double rate, double basicSalary) {super(name, birthdayMonth, saleroom, rate);this.basicSalary = basicSalary;}public double getBasicSalary() {return basicSalary;}public void setBasicSalary(double basicSalary) {this.basicSalary = basicSalary;}@Overridepublic double getSalary(int month) {double salary = getSaleroom() * getRate() + basicSalary;if (month == getBirthdayMonth()) {salary += 100;} else {}return salary;}
}class HourlyEmployee extends Employee {private double salaryHour;//每小时工资private double mountHour;//一个月的工作小时数public HourlyEmployee() {}public HourlyEmployee(String name, int birthdayMonth, double salaryHour, double mountHour) {super(name, birthdayMonth);this.salaryHour = salaryHour;this.mountHour = mountHour;}public double getSalaryHour() {return salaryHour;}public void setSalaryHour(double salaryHour) {this.salaryHour = salaryHour;}public double getMountHour() {return mountHour;}public void setMountHour(double mountHour) {this.mountHour = mountHour;}@Overridepublic double getSalary(int month) {double salary;if (mountHour <= 160) {salary = salaryHour * mountHour;} else {salary = (mountHour - 160) * salaryHour * 1.5 + mountHour * salaryHour;}return salary;}
}class Test {public static void main(String[] args) {Employee[] em = new Employee[4];em[0] = new SalariedEmployee("王3", 8, 5000);em[1] = new SalesEmployee("李4", 11, 1000, 0.2);em[2] = new HourlyEmployee("杨5", 9, 20, 400);em[3] = new BasePlusSalesEmployee("张6", 7, 6000, 0.2, 3000);Scanner sc = new Scanner(System.in);System.out.println("请输入当前月份: ");int mouth = sc.nextInt();for (int i = 0; i < 4; i++) {System.out.print("姓名 : " + em[i].getName() + ",生日月份: " + em[i].getBirthdayMonth()+ ", 本月工资: " + em[i].getSalary(mouth) + "\n");}}
}
# 封装,抽象类,继承,重写java编程题 问题描述 ``` 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。 方法:getSalary(int相关推荐
- Cola公司的雇员分为以下若干类:(知识点:多态) 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工 的生日月份。方法:getSalary(int month) 根据
Cola公司的雇员分为以下若干类:(知识点:多态) 4.1 ColaEmployee :这是所有员工总的父类,属性:员工的姓名,员工 的生日月份.方法:getSalary(int month) 根据参 ...
- java编程---某公司的雇员分为以下若干类:Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(intmonth)根据参数月份来确定工资。
题目: 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份. 方法:getSalary(intmonth) 根据参数月份来确定工资,如果该月员工 ...
- 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类, 属性: 员工的姓名,员工的生日月份。 方法:getSalary(
代码 /*某公司的雇员分为以下若干类:Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:getSalary(intmonth)根据参数月份来确定工资,如果该月员工过生日, ...
- JAVA编程假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资
(1)经理(Manager)--每月获得一份固定的工资 (2)销售人员(Salesman)--在基本工资的基础上每月还有销售提成. (3)一般工人(Worker)--则按他每月工作的天数计算工资. 根 ...
- java设计一个形状shape_编程定义一个图形接口 Shape, 内含2个抽象方法 get... JAVA编程题:编一个程序包含一个接口 shape(该接......
导航:网站首页 > 编程定义一个图形接口 Shape, 内含2个抽象方法 get... JAVA编程题:编一个程序包含一个接口 shape(该接... 编程定义一个图形接口 Shape, 内含2 ...
- java 编程题_最新JAVA编程题全集(50题及答案)92862
<最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...
- 质量不同的球java编程_荐非常经典的java编程题全集-共50题(1-10)...
非常经典的java编程题 程序1:斐波那契数列问题 题目概述: 古典问题: 有一对兔子,从出生第三个月起每月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多 ...
- java类求圆的面积周长_java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题。编写一个应用程序计算圆的周长和面积,设圆的半...
问题标题 java编程 1. 设计一个求圆的面积和周长的类,要求:1计算当半径r,JAVA编程题.编写一个应用程序计算圆的周长和面积,设圆的半 2019-5-23来自ip:15.196.194.53的 ...
- java编程50_荐非常经典的java编程题全集-共50题(1-10)...
非常经典的java编程题 程序1:斐波那契数列问题 题目概述: 古典问题: 有一对兔子,从出生第三个月起每月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多 ...
最新文章
- 2022-2028年中国金融安防行业深度调研及投资前景预测报告
- 一个c加一个g是什么牌子_一个G的流量60块钱,为什么会这么贵?
- (NO.00004)iOS实现打砖块游戏(八):游戏中小球与砖块的碰撞
- 伽马分布极大似然估计_一文通俗解释极大似然估计
- windows下搭建Apache+Mysql+PHP开发环境
- Spring Cloud 服务注册中心Eureka
- Tornado 上传文件及存储
- 打榜前10名:天池AI医疗人工智能辅助糖尿病遗传风险预测
- [转载] Python字典的setdefault()方法
- matlab调用cuda,Matlab 调用CUDA的总结(Windows、Ubuntu)
- 【eoeAndroid社区索引】Android控件知识汇总
- 汽车UDS诊断之诊断会话控制服务(0x10)深度剖析
- xposed框架修改手机串号教程_xposed 入门之修改手机 IMEI
- 孙氏太极拳--无极桩
- 【Java】线程池、Lambda表达式
- 夏天来了,来吃鹅厂新瓜,小马哥已吃
- http简介以及常见知识和http请求头,响应头,状态码,内容类型对照表分享(超实用)
- 排毒一年,长寿十年,排出毒素,一身轻松 要美容 先排毒
- Perl 邮件地址检查
- 如何打开微信dat文件