用java完成以下类的设计 1. 用户类(学生、辅导员和教师) 2. 用户主界面类 3. 请假申请界面类
时间: 2024-09-28 09:10:02 浏览: 32
在Java中,我们可以设计这样的类结构:
1. **用户类(User)**
- 这是一个抽象基类,用于定义共同的行为和属性,如`id`, `name`, `role`等。
```java
abstract class User {
private String id;
private String name;
protected String role;
public User(String id, String name, String role) {
this.id = id;
this.name = name;
this.role = role;
}
// 公共方法
public abstract void applyLeave();
// 获取和设置方法
// ...
}
```
- **子类(Student, Tutor, Teacher)**
- 学生(Student)和教师(Teacher)继承自User,辅导员(Tutor)可以看作是特殊的教师。
```java
class Student extends User {
public Student(String id, String name) {
super(id, name, "Student");
}
@Override
public void applyLeave() {
System.out.println("学生" + name + "提交了请假申请.");
}
}
class Tutor extends User {
public Tutor(String id, String name) {
super(id, name, "Tutor");
}
@Override
public void applyLeave() {
System.out.println("辅导员" + name + "审核学生的请假申请.");
}
}
class Teacher extends User {
public Teacher(String id, String name) {
super(id, name, "Teacher");
}
@Override
public void applyLeave() {
System.out.println("教师" + name + "处理学生的请假申请.");
}
}
```
2. **用户主界面(UI)**
- 主界面类负责与用户交互,包含显示用户信息和操作等功能。
```java
class UserInterface {
private User user;
public UserInterface(User user) {
this.user = user;
}
public void showUserInfo() {
System.out.println("用户信息: ID - " + user.getId() + ", Name - " + user.getName());
}
public void handleOperation() {
if (user instanceof Student) {
((Student) user).applyLeave();
} else if (user instanceof Tutor || user instanceof Teacher) {
user.applyLeave();
}
}
}
```
3. **请假申请界面(LeaveApplication)**
- 如果有单独的请假申请界面,它可能会从UI中提取出来作为独立的模块。
```java
class LeaveApplication {
public static void main(String[] args) {
User user = new Student("001", "张三"); // 或者教师或辅导员
UserInterface ui = new UserInterface(user);
ui.showUserInfo();
ui.handleOperation();
}
}
```
阅读全文