用java编写抽象类 `Person` 定义如下: abstract class Person{ String name; char sex; int age; abstract void setData(String name,char sex,int age); abstract String getData(); } 类 `Student` 和类 `Teacher` 均是抽象类 `Person` 的子类,类 `Student` 有成员变量name, sex, age, sID, speciality,其中sID表示学生学号,speciality表示学生专业;类 `Teacher` 有成员变量name, sex, age, tID, department,其中tID表示教师的编号,department表示教师所在部门,请编写类 `Student` 和类 `Teacher` 所需基本功能。
时间: 2024-02-14 20:06:21 浏览: 105
好的,这是一个面向对象的编程问题,我可以帮你解答。
首先,我们需要定义抽象类 `Person`,其中包含 `name`、`sex` 和 `age` 三个成员变量,以及一个抽象的 `setData` 方法用于设置这三个成员变量的值,以及一个抽象的 `getData` 方法用于返回这三个成员变量的值构成的字符串。代码如下:
```java
public abstract class Person {
protected String name;
protected char sex;
protected int age;
public abstract void setData(String name, char sex, int age);
public abstract String getData();
}
```
接下来,我们需要定义 `Student` 类和 `Teacher` 类,它们都是 `Person` 类的子类。在 `Student` 类中,我们需要添加 `sID` 和 `speciality` 两个成员变量,以及实现 `setData` 和 `getData` 方法。在 `Teacher` 类中,我们需要添加 `tID` 和 `department` 两个成员变量,以及实现 `setData` 和 `getData` 方法。代码如下:
```java
public abstract class Student extends Person {
protected int sID;
protected String speciality;
public void setData(String name, char sex, int age, int sID, String speciality) {
this.name = name;
this.sex = sex;
this.age = age;
this.sID = sID;
this.speciality = speciality;
}
public String getData() {
return "Name: " + name + ", Sex: " + sex + ", Age: " + age + ", Student ID: " + sID + ", Speciality: " + speciality;
}
}
public abstract class Teacher extends Person {
protected int tID;
protected String department;
public void setData(String name, char sex, int age, int tID, String department) {
this.name = name;
this.sex = sex;
this.age = age;
this.tID = tID;
this.department = department;
}
public String getData() {
return "Name: " + name + ", Sex: " + sex + ", Age: " + age + ", Teacher ID: " + tID + ", Department: " + department;
}
}
```
在 `Student` 类和 `Teacher` 类中,我们都实现了 `setData` 和 `getData` 方法,其中 `setData` 方法用于设置成员变量的值,`getData` 方法用于返回成员变量的值构成的字符串。由于 `Person` 类是抽象类,所以我们需要在子类中实现它的抽象方法。这样,我们就完成了 `Student` 类和 `Teacher` 类的定义。
阅读全文