理解方法重写。创建一个公民类,包含姓名、性别、出生年月信息,以及输出这些信息的方法。再定义学生子类,还包含学号、注册时间、入学成绩信息,以及输出这些信息的方法。
时间: 2024-10-24 14:02:14 浏览: 48
理解方法重写,我们可以从面向对象的角度出发。首先,我们有一个基础的"公民"类(Citizen),它包含了通用的个人信息,如姓名(name)、性别(gender)和出生日期(birthday)。在这个类里,我们会定义一个方法`displayInfo()`,用于显示基本的信息:
```java
public class Citizen {
private String name;
private String gender;
private Date birthday;
public Citizen(String name, String gender, Date birthday) {
this.name = name;
this.gender = gender;
this.birthday = birthday;
}
// 输出基本信息的方法
public void displayInfo() {
System.out.println("Name: " + name);
System.out.println("Gender: " + gender);
System.out.println("Birthday: " + birthday);
}
}
```
接下来,我们创建一个名为"学生"(Student)的子类,它是"公民"的特化,添加了特定于学生的属性如学号(studentID)、注册时间(registrationDate)和入学成绩(enrollmentScore),同样也覆盖了`displayInfo()`方法来展示更详细的学生信息:
```java
public class Student extends Citizen {
private int studentID;
private Date registrationDate;
private double enrollmentScore;
public Student(String name, String gender, Date birthday, int studentID, Date registrationDate, double enrollmentScore) {
super(name, gender, birthday);
this.studentID = studentID;
this.registrationDate = registrationDate;
this.enrollmentScore = enrollmentScore;
}
// 重写displayInfo()方法,展示更多细节
@Override
public void displayInfo() {
super.displayInfo();
System.out.println("Student ID: " + studentID);
System.out.println("Registration Date: " + registrationDate);
System.out.println("Enrollment Score: " + enrollmentScore);
}
}
```
在这个例子中,当我们实例化`Student`对象并调用`displayInfo()`方法时,会执行子类`Student`中的版本,而不是父类`Citizen`的版本。这就是方法重写的基本概念。
阅读全文