某公司的人员分为员工和经理两种,但经理也属于员工中的一种,公司的人员都有自己的姓名和地址,员工和经理都有自己的工号、工资、工龄等属性,但经理与员工的不同之处在于,经理有自己在公司对应的级别。假设每次给员工涨一次工资能涨10%,经理能涨20%。本案要求利用java多态实现给员工和经理涨工资
时间: 2023-10-25 10:20:46 浏览: 100
基于java公司员工考勤管理系统设计与实现.docx
5星 · 资源好评率100%
好的,我可以帮你解决这个问题。
首先,我们可以设计一个员工类和一个经理类,它们都继承自一个Person类,这个类中包含姓名和地址的属性。
在员工类中,我们可以定义工号、工资和工龄这些属性,并且提供一个方法用于涨工资,这个方法可以让工资增加10%。
在经理类中,除了工号、工资和工龄这些属性之外,我们还可以定义经理的级别属性,并且提供一个方法用于涨工资,这个方法可以让工资增加20%。
以下是代码示例:
```
class Person {
String name;
String address;
}
class Employee extends Person {
int employeeId;
double salary;
int yearsOfExperience;
public void raiseSalary() {
salary *= 1.1;
}
}
class Manager extends Employee {
String level;
public void raiseSalary() {
salary *= 1.2;
}
}
```
在这个示例中,我们定义了三个类,分别为Person、Employee和Manager。Employee和Manager都继承自Person类,因此它们都拥有name和address属性。
Employee类中定义了employeeId、salary和yearsOfExperience属性,并且提供了raiseSalary方法用于涨工资。Manager类中除了继承自Employee类的属性之外,还定义了level属性,并且重写了raiseSalary方法以实现涨工资的不同方式。
接下来,我们可以使用多态的方式创建Employee和Manager对象,并且调用它们的raiseSalary方法来实现涨工资的操作,示例如下:
```
public static void main(String[] args) {
Person employee = new Employee();
Person manager = new Manager();
((Employee) employee).raiseSalary();
((Manager) manager).raiseSalary();
}
```
在这个示例中,我们创建了一个Employee对象和一个Manager对象,并且使用Person类型的引用来引用它们。由于Employee和Manager都是Person的子类,因此可以使用多态的方式来创建它们的对象。
在调用raiseSalary方法时,我们需要将引用强制转换为Employee或Manager类型,这样才能调用它们自己的raiseSalary方法。通过这种方式,我们就可以实现给员工和经理涨工资的操作。
阅读全文