java创建一个person类,让student,teacher继承person类,在person类中,有基本的属性,比如:姓名,年龄,性别。在person类中,定义一些方法,让其子类重写这些方法并编写程序测试这些方法
时间: 2024-10-23 09:08:08 浏览: 126
首先,让我们创建一个名为`Person`的抽象基类,包含姓名、年龄和性别的属性以及一些默认的行为方法。接着,我们将创建两个子类`Student`和`Teacher`来继承这个基类,并重写某些方法。
```java
// Person.java (基类)
public abstract class Person {
private String name;
private int age;
private String gender;
// 构造函数
public Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// 获取属性的方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
// 默认的行为方法,可以由子类覆盖
public void introduce() {
System.out.println("Hello, my name is " + name + ", I am " + age + " years old and of " + gender + " gender.");
}
// 定义抽象方法,需要在子类中提供实现
public abstract void studyOrTeach();
public static void main(String[] args) {
// 测试Person类
Person person = new Person("John", 25, "Male");
person.introduce();
// 子类测试
Student student = new Student(person.getName(), person.getAge(), person.getGender());
student.studyOrTeach(); // 这里需要子类的实际实现
Teacher teacher = new Teacher(person.getName(), person.getAge(), person.getGender());
teacher.studyOrTeach(); // 同理,这里也需要教师的具体行为
}
}
// Student.java (子类)
class Student extends Person {
public Student(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void studyOrTeach() {
System.out.println(name + " is a student, studying hard.");
}
}
// Teacher.java (子类)
class Teacher extends Person {
public Teacher(String name, int age, String gender) {
super(name, age, gender);
}
@Override
public void studyOrTeach() {
System.out.println(name + " is a teacher, teaching students.");
}
}
```
在这个例子中,`studyOrTeach`方法是抽象的,所以`Student`和`Teacher`类都需要提供它们自己的实现。运行这个程序,你会看到每个实例如何根据其自身的角色介绍和活动。
阅读全文