JAVA 父类与子类的一道题

[复制链接]
查看11 | 回复2 | 2010-6-4 21:39:11 | 显示全部楼层 |阅读模式
公司每周支付员工工资。员工包括3种类型:正式员工支付固定工资;钟点工按照小时支付工资,如果工作总时间超过40小时,超过的每小时还要额外付加班费,加班费为每小时薪酬的1.5倍。代理员工的工资按照其销售额的百分比提成。请编程实现一个显示工资单的程序。
父类“员工”(Employee),属性包括员工ID、姓名,打印ID和姓名的方法,成员函数earning计算员工的工资,返回一个double数值。函数print输出员工的ID和姓名。
三个子类
正式员工(SalariedEmployee)的属性包括每周的固定工资。
钟点工(HourlyEmployee)的属性包括每周工作的小时数和每小时的报酬。
代理员工(CommissionEmployee)的属性包括每周的销售额和提成的比例。
成员函数earning计算员工的工资
创建如下类,判断你的程序是否正确
public Company {
public static void main(String[] args) {

Employee emp1 = new SalariedEmployee(1, "John", 800 );//初始化参数为ID、姓名、固定工资

Employee emp2 = new HourlyEmployee(2,"Karen", 16, 40);//初始化参数为ID、姓名、小时工资、工作小时数

Employee emp3 = new CommissionEmployee(4,"Sue",10000, 0.06 ); //初始化参数为ID、姓名、销售额、提成比例

emp1.print();

System.out.println("Earning is " + emp1.earning());

emp2.print();

System.out.println("Earning is " + emp2.earning());

emp3.print();

System.out.println("Earning is " + emp3.earning());
}
}

回复

使用道具 举报

千问 | 2010-6-4 21:39:11 | 显示全部楼层
public class Company { public static void main(String[] args) {
Employee emp1 = new SalariedEmployee(1, "John", 800 );//初始化参数为ID、姓名、固定工资
Employee emp2 = new HourlyEmployee(2,"Karen", 16, 40);//初始化参数为ID、姓名、小时工资、工作小时数
Employee emp3 = new CommissionEmployee(4,"Sue",10000, 0.06 ); //初始化参数为ID、姓名、销售额、提成比例
回复

使用道具 举报

千问 | 2010-6-4 21:39:11 | 显示全部楼层
这个问题是个很好练习题,如果想学习的话,建议你好好的设计一下。好好的感受下oo的魅力。如何封装,继承,然后运用多态建议找本设计模式的书好好研究,这个问题可以涉及好几个比较简单的设计模式,比如factory,strategy,个人建议自己好好练习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行