三个类 人 学生(继承于人) 老师(继承于人)<一个接口定义 学习 学生和老炳安現学刁接口← 三个类分别拥有方法散步 构造人的对象分别去调用子类的散步
时间: 2024-10-29 22:16:37 浏览: 11
《孙子兵法》主要版本及介绍.doc
这是一个典型的面向对象编程示例,涉及了继承、多态和接口的概念。在这个例子中:
1. **类**:
- `人`(Person)是一个基本的类,代表所有的人。
- `学生`(Student)是从`人`类派生出的一个特殊类,表示会学习的学生。
- `老师`(Teacher)也是从`人`类派生的,代表可以教授知识的教师。
2. **继承**:
- `学生`和`老师`都继承自`人`,这意味着它们共享了`人`类的所有属性和方法,如`姓名`、`年龄`等。
3. **接口**:
- 定义了一个名为`学习`的接口,这个接口只包含一个方法`学习()`,表示能进行学习的行为。
- `学生`和`老师`作为接口的实现者,表明它们都有能力学习。
4. **多态**:
- 当创建`人`类型的对象时,可以是`学生`、`老师`或者其他继承自`人`的类的对象。当我们调用`散步`方法时,因为`人`有一个默认的`散步`方法,所以可以直接操作。然而,如果需要调用`学习`方法,由于多态性,会根据实际对象的类型调用相应的`学习`方法,可能是学生的学习计划,也可能是老师的教学活动。
例如,代码可能看起来像这样:
```java
public class Person {
public void散步() { /* 具体实现 */ }
}
interface 学习 {
void 学习();
}
class Student extends Person implements 学习 {
@Override
public void 学习() { /* 学生的学习方法 */ }
// 其他学生特有的方法
}
class Teacher extends Person implements 学习 {
@Override
public void 学习() { /* 教师的教学方法 */ }
// 其他教师特有的方法
}
// 创建对象并调用多态方法
Person person = new Student(); // 或 Teacher
person 散步(); // 调用学生的散步方法
person 学习(); // 调用学生的学习方法,根据实际对象调用
```
阅读全文