考虑一个大学注册系统,我们有不同类型的用户:学生、教师和管理员。 1使用方法建立界面使用者获取文件名 ()、getEmail () 和getUserType ()三种方法来实现。 2.创造实现User并提供抽象方法的抽象类AbstractUser执行角色。 3.创建三个扩展AbstractUser类学生类,教师类和管理员类。每个类都应该相应地实现performRole ()方法。 1. 学生的角色是“听课”。 2. 教师的角色是“讲课”。 3.管理员的角色是“管理用户”。 4.创建一个UserRegistry类,该类具有registerUser () 方法和displayUsers ()方法,前者可以接受实现User 接口的任何对象,后者可以打印注册表中所有用户的详细信息。
时间: 2024-03-25 16:40:19 浏览: 16
好的,下面是一个简单的实现:
```java
// User接口
public interface User {
String getFileName();
String getEmail();
String getUserType();
}
// 抽象类AbstractUser
public abstract class AbstractUser implements User {
private String fileName;
private String email;
private String userType;
public AbstractUser(String fileName, String email, String userType) {
this.fileName = fileName;
this.email = email;
this.userType = userType;
}
public String getFileName() {
return fileName;
}
public String getEmail() {
return email;
}
public String getUserType() {
return userType;
}
public abstract void performRole();
}
// 学生类
public class Student extends AbstractUser {
public Student(String fileName, String email) {
super(fileName, email, "Student");
}
public void performRole() {
System.out.println("My role is to attend classes.");
}
}
// 教师类
public class Teacher extends AbstractUser {
public Teacher(String fileName, String email) {
super(fileName, email, "Teacher");
}
public void performRole() {
System.out.println("My role is to give lectures.");
}
}
// 管理员类
public class Administrator extends AbstractUser {
public Administrator(String fileName, String email) {
super(fileName, email, "Administrator");
}
public void performRole() {
System.out.println("My role is to manage users.");
}
}
// UserRegistry类
public class UserRegistry {
private List<User> userList;
public UserRegistry() {
userList = new ArrayList<User>();
}
public void registerUser(User user) {
userList.add(user);
}
public void displayUsers() {
for (User user : userList) {
System.out.println("File Name: " + user.getFileName());
System.out.println("Email: " + user.getEmail());
System.out.println("User Type: " + user.getUserType());
System.out.println("--------------------------");
}
}
}
```
使用方法:
```java
public class Main {
public static void main(String[] args) {
UserRegistry registry = new UserRegistry();
User student = new Student("John Smith", "johnsmith@gmail.com");
registry.registerUser(student);
User teacher = new Teacher("Jane Doe", "janedoe@gmail.com");
registry.registerUser(teacher);
User admin = new Administrator("Tom Johnson", "tomjohnson@gmail.com");
registry.registerUser(admin);
registry.displayUsers();
}
}
```
输出结果:
```
File Name: John Smith
Email: johnsmith@gmail.com
User Type: Student
--------------------------
File Name: Jane Doe
Email: janedoe@gmail.com
User Type: Teacher
--------------------------
File Name: Tom Johnson
Email: tomjohnson@gmail.com
User Type: Administrator
--------------------------
```
希望对您有所帮助。