在员工类中只定义共有的成员变量,定义类的构造方法,定义共有的方法; 3. 定义行政类,经理类,只定义自己特有属性和方法,父类已有的成员变量和成员方法不再定义; 4. 编写测试类,分别声明对象进行调用; 5. 程序代码为:
时间: 2024-10-12 13:10:58 浏览: 28
在面向对象编程中,你可以采用单一职责原则(SRP),创建一个基础的员工类(Employee)作为父类,其中定义所有员工共有的属性和行为,比如姓名、职位等通用字段以及入职日期、薪资计算等方法。构造方法用于初始化新创建的员工对象。
例如:
```java
public abstract class Employee {
private String name;
private String position;
protected Date startDate;
private double salary;
// 构造方法
public Employee(String name, String position) {
this.name = name;
this.position = position;
this.startDate = new Date();
}
// 共享的方法
public void calculateSalary() {
// 计算逻辑
}
// 共享的getter和setter方法
public String getName() { return name; }
public void setName(String name) { this.name = name; }
//...
}
// 子类行政类(Admin)
public class Admin extends Employee {
private int adminID;
public Admin(String name, String position, int adminID) {
super(name, position);
this.adminID = adminID;
}
// 行政特有的方法
public void manageProjects() {
// 管理项目逻辑
}
// 特定的getter和setter
public int getAdminID() { return adminID; }
public void setAdminID(int adminID) { this.adminID = adminID; }
}
// 子类经理类.Manager
public class Manager extends Employee {
private List<Employee> team;
public Manager(String name, String position, List<Employee> team) {
super(name, position);
this.team = team;
}
// 经理特有的方法
public void assignTasks() {
// 分配任务逻辑
}
// 特定的getter和setter
public List<Employee> getTeam() { return team; }
public void setTeam(List<Employee> team) { this.team = team; }
}
// 测试类
public class Test {
public static void main(String[] args) {
Admin admin = new Admin("张三", "行政主管", 1001);
admin.calculateSalary(); // 调用共通方法
admin.manageProjects(); // 调用行政特有方法
Manager manager = new Manager("李四", "销售经理", Arrays.asList(admin, new SalesEmployee()));
manager.calculateSalary(); // 调用共通方法
manager.assignTasks(); // 调用经理特有方法
}
}
```
在这个例子中,`Test` 类展示了如何创建不同类型的员工实例,并通过它们的公共方法和各自的特有方法进行操作。这样设计使得代码模块化,易于维护和扩展。
阅读全文