用Java代码,需求:公司中程序员有姓名、工号、薪水、工作内容;项目经理有姓名、工号、薪水、还有奖金、工作内容。对给出的需求进行数据建模(抽象)。
时间: 2024-11-03 17:19:01 浏览: 26
在Java中,我们可以使用面向对象的设计模式来满足这种数据建模需求,通过抽象和继承来创建员工和项目经理两个角色的共性和特性。首先,我们可以定义一个名为`Employee`的抽象类,包含所有员工的通用属性:
```java
public abstract class Employee {
private String name;
private int employeeID;
private double salary;
// 构造函数
public Employee(String name, int employeeID, double salary) {
this.name = name;
this.employeeID = employeeID;
this.salary = salary;
}
// getters and setters
public String getName() { return name; }
public int getEmployeeID() { return employeeID; }
public double getSalary() { return salary; }
// 公共的工作内容方法
public abstract String getWorkContent();
}
```
然后,为`ProjectManager`这个特定的角色创建一个子类,并添加特有的奖金属性及定制的工作内容方法:
```java
public class ProjectManager extends Employee {
private double bonus;
public ProjectManager(String name, int employeeID, double salary, double bonus) {
super(name, employeeID, salary);
this.bonus = bonus;
}
@Override
public String getWorkContent() {
return "负责项目管理";
}
// 获取奖金的方法
public double getBonus() { return bonus; }
}
```
这样,我们就可以创建`Employee`类型的实例代表普通程序员,也可以创建`ProjectManager`类型的实例代表项目经理,同时保持了代码的灵活性。
阅读全文