java请为教师工作证与学生工作证设计一个类结构,尽可能保证代码的重用率,病输出教师工作证和学生证信息
时间: 2024-03-03 14:47:28 浏览: 64
好的,我可以为您设计这个Java类结构。
首先,我们可以定义一个基类 `WorkID`,其中包含工作证号码和姓名两个属性,以及输出工作证信息的方法 `printInfo`:
```java
public class WorkID {
private String workID;
private String name;
public WorkID(String workID, String name) {
this.workID = workID;
this.name = name;
}
public void printInfo() {
System.out.println("工作证号码:" + workID);
System.out.println("姓名:" + name);
}
}
```
接下来,我们可以定义教师和学生的类,分别继承于 `WorkID` 类,并在其中添加额外的属性和方法。
对于教师,我们可以添加教育背景和职称两个属性,以及输出教师信息的方法 `printTeacherInfo`:
```java
public class Teacher extends WorkID {
private String education;
private String title;
public Teacher(String workID, String name, String education, String title) {
super(workID, name);
this.education = education;
this.title = title;
}
public void printTeacherInfo() {
super.printInfo();
System.out.println("教育背景:" + education);
System.out.println("职称:" + title);
}
}
```
对于学生,我们可以添加学号和所在班级两个属性,以及输出学生信息的方法 `printStudentInfo`:
```java
public class Student extends WorkID {
private String studentID;
private String classID;
public Student(String workID, String name, String studentID, String classID) {
super(workID, name);
this.studentID = studentID;
this.classID = classID;
}
public void printStudentInfo() {
super.printInfo();
System.out.println("学号:" + studentID);
System.out.println("所在班级:" + classID);
}
}
```
这样,我们就可以通过多态性来调用不同工作证的 `printInfo` 方法,输出教师和学生的信息。例如,对于一个教师和一个学生,我们可以这样输出他们的信息:
```java
Teacher teacher = new Teacher("T001", "张三", "博士", "教授");
Student student = new Student("S001", "李四", "20190001", "计算机科学与技术1班");
teacher.printTeacherInfo();
System.out.println("-----------");
student.printStudentInfo();
```
输出结果为:
```
工作证号码:T001
姓名:张三
教育背景:博士
职称:教授
-----------
工作证号码:S001
姓名:李四
学号:20190001
所在班级:计算机科学与技术1班
```
阅读全文