子类Student类继承父类、并重写父类的printInfo(),使得子类的printInfo()能够返回所有属性信息,包括从父类中继承的属性。再定义测试类,在main方法中创建Student对象,验证Student类中重写的printInfo()的正确性。
时间: 2024-11-25 17:19:57 浏览: 3
在面向对象编程中,比如在Java中,如果有一个父类`Person`,包含了一些通用属性如姓名和年龄,我们可以通过创建一个新的子类`Student`来继承这些属性,并添加特有的属性,例如学号或专业。为了体现多态,子类可以重写父类的方法,如`printInfo()`。
首先,让我们定义一下`Person`类:
```java
public class Person {
private String name;
private int age;
// 构造函数、getter和setter省略
public void printInfo() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
```
然后,我们将`Student`类继承自`Person`,并重写`printInfo()`方法:
```java
public class Student extends Person {
private String studentId;
private String major;
// 构造函数、getter和setter省略
@Override
public void printInfo() {
super.printInfo();
System.out.println("Student ID: " + studentId + ", Major: " + major);
}
}
```
接下来,我们创建一个测试类`Test`,并在`main`方法中创建`Student`对象,并验证`printInfo()`的正确性:
```java
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("张三");
student.setAge(20);
student.setStudentId("123456");
student.setMajor("计算机科学");
student.printInfo(); // 这将打印出Person的信息以及Student特有的信息
}
}
```
当你运行这个`Test`类,会看到输出结果类似这样的内容:
```
Name: 张三, Age: 20
Student ID: 123456, Major: 计算机科学
```
这就展示了多态性的应用,即通过子类重写父类的方法,实现了特定情况下的行为变化。
阅读全文