用java将上两题 Teacher 类和 Student 类中共同的内容编写为父类,让两个子类继承。
时间: 2024-11-20 20:42:44 浏览: 16
为了将`Teacher`和`Student`类中共享的特性提取到一个公共父类中,我们可以创建一个新的`Person`类,它包含了`id`, `name`, 和`gender`等通用属性,然后让`Teacher`和`Student`分别作为其子类。以下是具体的实现:
```java
// 父类 Person
public class Person {
private String id; // 学号或教师编号
private String name; // 姓名
private String gender; // 性别
// 构造函数
public Person(String id, String name, String gender) {
this.id = id;
this.name = name;
this.gender = gender;
}
// 定义公共方法,如获取和设置信息
public String getId() { return id; }
public String getName() { return name; }
public String getGender() { return gender; }
// 虚拟的打印基本资料的方法,将在子类中覆盖
public abstract void printBasicInfo();
}
// 子类 Teacher
public class Teacher extends Person {
private int yearsOfExperience; // 教师经验年数
private String subject; // 主讲科目
public Teacher(String id, String name, String gender, int yearsOfExperience, String subject) {
super(id, name, gender); // 继承父类的构造函数
this.yearsOfExperience = yearsOfExperience;
this.subject = subject;
}
@Override
public void printBasicInfo() {
System.out.println("教职员工号:" + getId());
System.out.println("姓名:" + getName());
System.out.println("性别:" + getGender());
System.out.println("教授科目:" + subject);
}
}
// 子类 Student
public class Student extends Person {
private int grade; // 年级
public Student(String id, String name, String gender, int grade) {
super(id, name, gender); // 继承父类的构造函数
this.grade = grade;
}
@Override
public void printBasicInfo() {
System.out.println("学号:" + getId());
System.out.println("姓名:" + getName());
System.out.println("性别:" + getGender());
System.out.println("年级:" + grade);
}
}
```
在这个例子中,`Teacher`和`Student`都继承了`Person`,并且各自实现了`printBasicInfo()`方法,以展示他们独特的信息。
阅读全文