J构造三个类 人 学生 教师 学生和教师继承于人 写一个接口定义 wak 方法由学生和教师分别去实现 人有一个study 方法 学生和教师重写该方法之后用人去调用(父类调用子类)用java实现
时间: 2024-10-29 09:17:38 浏览: 22
在Java中,我们可以按照这样的结构创建三个类:`Person`, `Student`, 和 `Teacher`,并定义一个接口`Wakeable`,然后让`Student`和`Teacher`类实现这个接口。同时,我们会覆盖`Person`类中的`study`方法。
首先,我们定义`Person`类作为超类(Base Class),`Student`和`Teacher`作为派生类(Derived Classes),以及`Wakeable`接口:
```java
// Person 类
public class Person {
public void study() {
System.out.println("Person is studying.");
}
}
// Wakeable 接口
public interface Wakeable {
void wake();
}
// Student 类,继承自 Person 并实现 Wakeable 接口
public class Student extends Person implements Wakeable {
@Override
public void wake() {
System.out.println("Student wakes up and starts learning.");
}
// 重写 study 方法
@Override
public void study() {
super.study(); // 调用父类的 study 方法
wake(); // 然后调用自身的 wake 方法
}
}
// Teacher 类,同样继承自 Person 并实现 Wakeable 接口
public class Teacher extends Person implements Wakeable {
@Override
public void wake() {
System.out.println("Teacher wakes up and begins teaching.");
}
// 重写 study 方法
@Override
public void study() {
super.study(); // 调用父类的 study 方法
wake(); // 调用自己的 wake 方法
}
}
```
现在你可以通过`Person`类型的引用调用`study`方法,因为`Study`和`Teacher`都重写了它:
```java
public static void main(String[] args) {
Person person = new Student(); // 创建一个学生对象
person.study(); // 输出 "Student wakes up and starts learning."
person = new Teacher(); // 创建一个教师对象
person.study(); // 输出 "Teacher wakes up and begins teaching."
}
```
阅读全文