用java编写一个学校账号管理系统,学生类中包含姓名、学号、专业名,老师类中包含姓名、工号和所属学院,管理员类中包含姓名、工号和部门名称,使用接口、继承和多态
时间: 2024-01-14 11:03:03 浏览: 29
好的,我可以帮你解答这个问题。
首先,我们需要定义一个基础的人员类,包含所有人员共有的属性,例如姓名和工号,代码如下:
```java
public class Person {
private String name;
private String id;
public Person(String name, String id) {
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public String getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public void setId(String id) {
this.id = id;
}
}
```
接下来,我们需要定义三个不同的类:学生、老师和管理员,它们都继承自人员类,并且拥有自己独有的属性和方法。
学生类中包含姓名、学号、专业名:
```java
public class Student extends Person {
private String major;
public Student(String name, String id, String major) {
super(name, id);
this.major = major;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
@Override
public String toString() {
return "Student{" +
"name='" + getName() + '\'' +
", id='" + getId() + '\'' +
", major='" + major + '\'' +
'}';
}
}
```
老师类中包含姓名、工号和所属学院:
```java
public class Teacher extends Person {
private String college;
public Teacher(String name, String id, String college) {
super(name, id);
this.college = college;
}
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
@Override
public String toString() {
return "Teacher{" +
"name='" + getName() + '\'' +
", id='" + getId() + '\'' +
", college='" + college + '\'' +
'}';
}
}
```
管理员类中包含姓名、工号和部门名称:
```java
public class Administrator extends Person {
private String department;
public Administrator(String name, String id, String department) {
super(name, id);
this.department = department;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public String toString() {
return "Administrator{" +
"name='" + getName() + '\'' +
", id='" + getId() + '\'' +
", department='" + department + '\'' +
'}';
}
}
```
最后,我们可以定义一个接口,用于实现对学校账号的管理:
```java
public interface AccountManagement {
void addStudent(Student student);
void deleteStudent(String id);
void addTeacher(Teacher teacher);
void deleteTeacher(String id);
void addAdministrator(Administrator administrator);
void deleteAdministrator(String id);
}
```
我们可以在学校类中实现这个接口,进行账号的管理,代码如下:
```java
import java.util.ArrayList;
import java.util.List;
public class School implements AccountManagement {
private List<Student> students = new ArrayList<>();
private List<Teacher> teachers = new ArrayList<>();
private List<Administrator> administrators = new ArrayList<>();
@Override
public void addStudent(Student student) {
students.add(student);
}
@Override
public void deleteStudent(String id) {
for (Student student : students) {
if (student.getId().equals(id)) {
students.remove(student);
break;
}
}
}
@Override
public void addTeacher(Teacher teacher) {
teachers.add(teacher);
}
@Override
public void deleteTeacher(String id) {
for (Teacher teacher : teachers) {
if (teacher.getId().equals(id)) {
teachers.remove(teacher);
break;
}
}
}
@Override
public void addAdministrator(Administrator administrator) {
administrators.add(administrator);
}
@Override
public void deleteAdministrator(String id) {
for (Administrator administrator : administrators) {
if (administrator.getId().equals(id)) {
administrators.remove(administrator);
break;
}
}
}
}
```
这样,我们就完成了一个简单的学校账号管理系统,使用了接口、继承和多态等面向对象的特性。