某公司的雇员分为以下若干类
创始人
2024-02-17 06:52:57
0
/*** 某公司的雇员分为以下若干类:* Employee:这是所有员工总的父类,其属性包括:员工姓名,员工的生日*                               其方法包括:getSalary(int month)*                               根据月份来确定工资,如果该月员工过生日,则公司额外奖励100元。** SalariedEmployee:Employee的子类,拿固定工资的员工,属性:月薪** HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超过160小时的部分按照1.5倍工资发放*                               属性:每小时的工资,每月工作的小时数** SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率来决定*                               属性:月销售额、提成率** BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加销售提成*                               属性:底薪* 根据要求创建SalariedEmployee、HourlyEmployee、SalesEmployee和BasePlusSalesEmployee* 并计算某个月这四个对象的工资* 要求:每个类都实现封装,不允许有非私有化属性。*/
class EmployeeText{public static void main(String[] args) {//创建对象//拿固定工资的员工Employee worker1 = new SalariedEmployee("张三",11,5000);//按小时拿工资的员工Employee worker2 = new HourlyEmployee("李四",11,20,240);//销售人员Employee worker3 = new SalesEmployee("王五",11,300000,0.1);//有固定底薪的销售人员Employee worker4 = new BasePlusSalesEmployee("赵六",11,90000,0.1,1000);System.out.println("拿固定工资的员工11月的工资是:" + worker1.getSalary(11));System.out.println("按小时拿工资的员工11月的工资是:" + worker2.getSalary(11));System.out.println("销售人员11月的工资是:" + worker3.getSalary(11));System.out.println("有固定底薪的销售人员11月的工资是:" + worker4.getSalary(11));}
}
/*
程序运行结果:拿固定工资的员工11月的工资是:5100.0按小时拿工资的员工11月的工资是:5700.0销售人员11月的工资是:30000.0有固定底薪的销售人员11月的工资是:10100.0
*/
//父类
class Employee{//属性private String name;private  int birthday;//无参构造public Employee() {}//有参构造public Employee(String name, int birthday) {this.name = name;this.birthday = birthday;}//set and getpublic String getName() {return name;}public void setName(String name) {this.name = name;}public int getBirthday() {return birthday;}public void setBirthday(int birthday) {this.birthday = birthday;}//获取员工工资的方法public double getSalary(int month){return 0;   //具体实现在子类重写该方法的时候提供}
}//拿固定工资的员工类
class SalariedEmployee extends Employee{//子类特有属性private double yueXin;//无参构造public SalariedEmployee() {}public SalariedEmployee(String name, int birthday) {//调用父类中有参构造super(name, birthday);}public SalariedEmployee(String name, int birthday, double yueXin) {//调用父类中有参构造super(name, birthday);//给子类中特有属性赋值this.yueXin = yueXin;}//get方法public double getYueXin() {return yueXin;}//set方法public void setYueXin(double yueXin) {this.yueXin = yueXin;}//重写父类中的方法@Override   //@Override是注解,表示下面的方法是重写父类中的方法public double getSalary(int month) {//如果该月员工过生日,工资增加100元if (this.getBirthday() == month){return this.getYueXin() + 100;}else {return this.getYueXin();}}
}//按小时拿工资的员工类
class HourlyEmployee extends Employee{//时薪属性private double hourSalary;//工作时长属性private double hour;//无参构造public HourlyEmployee() {}//有参构造public HourlyEmployee(String name, int birthday, double hourSalary, double hour) {super(name, birthday);this.hourSalary = hourSalary;this.hour = hour;}//set and getpublic double getHourSalary() {return hourSalary;}public void setHourSalary(double hourSalary) {this.hourSalary = hourSalary;}public double getHour() {return hour;}public void setHour(double hour) {this.hour = hour;}//重写方法@Overridepublic double getSalary(int month) {//指定一个变量double salary = 0;//如果工作时间小于160小时if (this.getHour() <= 160){salary = this.getHourSalary() * this.getHour();}else { //工作时间大于160小时salary = this.getHourSalary() * 160 + 1.5 * this.getHourSalary() * (this.getHour() - 160);}//如果工人这个月过生日if (this.getBirthday() == month){//工资增加100元salary += 100;}return salary;}
}
//SalesEmployee 销售人员类
class SalesEmployee extends Employee{//属性:月销售额、private double sale;//提成率private double royalty;//无参构造public SalesEmployee() {}//有参构造public SalesEmployee(String name, int birthday, double sale, double royalty) {super(name, birthday);this.sale = sale;this.royalty = royalty;}//get and setpublic double getSale() {return sale;}public void setSale(double sale) {this.sale = sale;}public double getRoyalty() {return royalty;}public void setRoyalty(double royalty) {this.royalty = royalty;}//重写父类中的方法@Overridepublic double getSalary(int month) {return this.sale * this.royalty;}
}
//BasePlusSalesEmployee 有固定底薪的销售人员类
class BasePlusSalesEmployee extends SalesEmployee{private double basicSalary;//无参构造方法public BasePlusSalesEmployee() {}//有参构造方法public BasePlusSalesEmployee(String name, int birthday, double sale, double royalty, double basicSalary) {super(name, birthday, sale, royalty);this.basicSalary = basicSalary;}//set and get 方法public double getBasicSalary() {return basicSalary;}public void setBasicSalary(double basicSalary) {this.basicSalary = basicSalary;}//重写父类方法@Overridepublic double getSalary(int month) {if (this.getBirthday() == month){return this.getSale() * this.getRoyalty() + this.getBasicSalary() + 100;}else {return this.getSale() * this.getRoyalty() + this.getBasicSalary();}}
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...