使用java实现毕业生信息处理,多态的薪酬计算
时间: 2024-04-29 14:25:51 浏览: 9
假设我们已经定义了一个Graduate类表示毕业生信息,其中包含姓名、学号、性别、年龄、学历等基本信息属性,以及calculateSalary()方法用于计算薪酬。
现在我们需要根据不同的岗位类型,实现不同的薪酬计算方式。这里我们可以使用多态来实现。
首先定义一个抽象类Job,其中包含一个抽象方法calculateSalary(),用于计算薪酬。然后定义不同的子类,分别实现不同的薪酬计算方式。
例如,我们可以定义一个Programmer类,实现calculateSalary()方法用于计算程序员的薪酬。代码如下:
```java
public abstract class Job {
public abstract double calculateSalary();
}
public class Programmer extends Job {
public double calculateSalary() {
// 实现程序员的薪酬计算方式
// ...
}
}
```
然后在Graduate类中,定义一个Job类型的成员变量job,用于表示毕业生的岗位类型。在构造函数中,根据不同的岗位类型,初始化job成员变量为不同的子类对象。
例如,我们可以定义一个Graduate对象g,表示一个毕业生信息,代码如下:
```java
public class Graduate {
private String name;
private String id;
private String gender;
private int age;
private String education;
private Job job;
public Graduate(String name, String id, String gender, int age, String education, Job job) {
this.name = name;
this.id = id;
this.gender = gender;
this.age = age;
this.education = education;
this.job = job;
}
public double calculateSalary() {
return job.calculateSalary();
}
}
Programmer p = new Programmer();
Graduate g = new Graduate("张三", "1001", "男", 25, "本科", p);
double salary = g.calculateSalary();
```
这样,我们就可以根据不同的岗位类型,实现不同的薪酬计算方式,实现了多态。