设计一个人员类person和一个日期类date由人员类派出学生Student和教师类teacher,学生类和教师类的数据组成员birthday为日期类。在主函数中进行测试
时间: 2024-11-30 08:17:32 浏览: 21
设计一个简单的面向对象程序,我们可以创建三个类:`Person`, `Date`, 和它们的派生类 `Student` 和 `Teacher`。这里是一个基本的设计:
```java
// 定义 Person 类作为基类
class Person {
String name;
// 使用 Date 类型的变量表示生日
Date birthday;
public Person(String name, Date birthday) {
this.name = name;
this.birthday = birthday;
}
// 其他可能的方法,如 getters 和 setters
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
// 定义 Date 类
class Date {}
// 子类 Student 和 Teacher,继承自 Person 类并添加特定属性
class Student extends Person {
int studentID;
public Student(String name, Date birthday, int studentID) {
super(name, birthday);
this.studentID = studentID;
}
}
class Teacher extends Person {
String subject;
public Teacher(String name, Date birthday, String subject) {
super(name, birthday);
this.subject = subject;
}
}
// 主函数测试
public class Main {
public static void main(String[] args) {
// 创建学生和教师实例
Student student = new Student("小明", new Date(), 001);
Teacher teacher = new Teacher("张老师", new Date(), "数学");
// 访问实例属性
System.out.println("学生姓名: " + student.getName());
System.out.println("学生生日: " + student.birthday);
System.out.println("学生ID: " + student.studentID);
System.out.println("\n教师姓名: " + teacher.getName());
System.out.println("教师生日: " + teacher.birthday);
System.out.println("教师科目: " + teacher.subject);
// 显示多态性示例,打印学生和教师的共同方法
System.out.println("\n教师也能访问生日信息: " + teacher.getName() + "'s birthday: " + teacher.birthday);
}
}
```
在这个例子中,`Student` 和 `Teacher` 都是从 `Person` 派生来的,所以他们都包含 `name` 和 `birthday` 属性,并且可以在主函数中共享 `getName()` 和 `getBirthday()` 方法。
阅读全文