【发布时间】:2012-10-09 15:55:22
【问题描述】:
所以,我正在做家庭作业,但我很难按照一些指示进行操作,我已将作业粘贴在下面:
创建一个包含五个类的层次结构,外加一个作为变量包含在内的类:
- Person 有四个字符串变量:姓名、地址、电话、电子邮件
- Student 是 Person 的子类,并且有一个额外的 int 变量状态,它的值是 1、2、3 或 4,分别代表大一、大二、大三、大四
- MyDate 具有年、月和日的三个 int 变量
- Employee 是 Person 的子类,有一个 String 变量 office,一个 int 变量表示薪水,一个 MyDate 变量表示 dateHired
- Staff 是 Employee 的子类,并且有一个额外的 String 变量作为 title
- Faculty 是 Employee 的子类,并且有一个额外的字符串变量用于等级,它采用教授、副教授、助理教授、讲师和兼职的值。所有六个类的数据都应该是私有的。
对于方法,如果您编写一个具有所有数据参数的构造函数并覆盖 toString( ) 方法,则可以跳过普通的 setter 和 getter。子类的构造函数应该使用超类的构造函数。子类的 toString( ) 方法应该使用其父类的 toString( ) 方法。
让我陷入循环的部分是这样一种想法,即可以编写一个构造函数来覆盖 setter 和 getter 的所有必要参数,而不是在每个子类中编写它们。这可能吗?那是怎么回事?
【问题讨论】:
-
你误会了。它们意味着每个类只有一个构造函数。
-
@EJP 是正确的。 Person 和 MyDate 是类,Faculty and Staff 是 Employee 的子类。此外,Student 和 Employee 是 Person 的子类。您可以说教职员工是“is-a(n)”员工,因此它是“is-a”关系。
-
对教师价值观使用枚举。
标签: java inheritance constructor subclass