7-2 employee类的层级结构
时间: 2023-05-31 08:18:46 浏览: 434
### 回答1:
7-2 Employee类的层级结构如下:
Employee(员工)类是一个基类,它有两个派生类:HourlyEmployee(小时工)和SalariedEmployee(月薪员工)。HourlyEmployee和SalariedEmployee都继承了Employee类的属性和方法,并且它们各自有自己的属性和方法。
HourlyEmployee类表示按小时计算工资的员工,它有一个属性hourlyWage(每小时工资)和一个属性hoursWorked(工作小时数)。它还有一个方法calculatePay(计算工资),用于计算员工的工资。
SalariedEmployee类表示按月薪计算工资的员工,它有一个属性annualSalary(年薪)和一个属性bonus(奖金)。它还有一个方法calculatePay(计算工资),用于计算员工的工资。
这个层级结构可以更进一步扩展,例如可以再创建一个派生类CommissionedEmployee(按销售提成计算工资的员工),它有一个属性commissionRate(提成比例)和一个属性sales(销售额)。它也有一个方法calculatePay(计算工资),用于计算员工的工资。
### 回答2:
7-2 employee类的层级结构是指根据员工的属性和职位不同,将employee类分为不同的子类,形成一个类的层级结构。这个层级结构可以用继承来实现,将所有子类都继承自employee类。
在这个层级结构中,employee类是基类,所有的子类都从基类继承而来,并且每个子类都可以加入自己的属性和方法。比如,manager类可以增加管理几个部门的属性和方法,director类可以增加制定公司战略的属性和方法等等。
在employee类的层级结构中,常见的子类有manager、director、software engineer、salesman、marketing等等。这些子类可以互相继承,构成一个完整的层级结构。
在这个层级结构中,每个子类都可以有自己的特点和属性,就像manager类可以管理多个部门,director类可以制定公司战略一样。这样设计的好处就是,不同类型的员工有不同的属性和方法,可以方便地管理和使用。
总而言之,7-2 employee类的层级结构是将所有员工按照职位和属性的不同,划分到不同的子类中,形成一个类的层级结构。这个层级结构可以用继承来实现,让每个子类都可以拥有自己的特点和属性,以方便管理和使用。
### 回答3:
7-2 employee类的层级结构包括Employee、SalariedEmployee、CommissionEmployee和BasePlusCommissionEmployee四个类。
Employee类是其他三个子类的父类,主要包含了员工的基本信息,包括姓名、社保号码和工资信息等。同时,这个类中还包含了抽象的earnings方法,用于计算员工的薪水。
SalariedEmployee类是根据固定薪水计算员工工资的一种类型,继承于Employee类。在SalariedEmployee类中,需要设置员工的周薪salary,同时重写父类的earnings方法以计算员工的薪水。因为SalariedEmployee不需要考虑销售业绩和底薪的影响,所以该类只需要实现一个构造方法即可。
CommissionEmployee类是以销售额为基础计算员工工资的一种类型,同样继承于Employee类。在这个类中,需要设置员工的销售额grossSales和佣金比例commissionRate,并重写父类的earnings方法以计算员工的薪水。因为CommissionEmployee的薪水与销售业绩紧密相关,所以该类需要实现一个带参数的构造方法以便于设置员工的销售额和佣金比例。
BasePlusCommissionEmployee类是在CommissionEmployee类的基础上增加了底薪计算,同样继承于Employee类。在这个类中,除了需要设置员工的销售额和佣金比例之外,还需要设置员工的底薪baseSalary,并重写父类的earnings方法以计算员工的薪水。因为BasePlusCommissionEmployee需要考虑底薪的影响,所以该类同样需要实现一个带参数的构造方法以便于设置员工的销售额、佣金比例和底薪。
总体来说,Employee类的层级结构体现了面向对象编程中的继承概念,通过不同的子类实现不同计算薪水的方式,从而可扩展度更高、代码更加灵活易读。
阅读全文