假设我有一个User
课程,User
可以是Employee
,Applicant
,两者都可以(在其他地方申请工作),或者两者都没有(失业,不申请工作)。
如何在java中定义这种关系,以便User
可以强制转换为Employee
,但前提是它们实际被使用,同样适用于其他场景(不能转换为{ {1}}或Employee
,如果他们失业并且没有申请工作)?
这是否需要为每个组合继承Applicant
的单独类,即User
,Employee
,Applicant
?
答案 0 :(得分:1)
只是说明我认为在评论中的含义(未经测试)
public class User {
/** this user’s employment, or null if unemployed */
private EmployeeRecord employment;
/** this user’s application, or null if not an applicant for any job */
private ApplicantRecord application;
// getters, setters etc.
}
如果相关,您甚至可以使用Collection<ApplicantRecord>
来模拟用户可能一次申请多个作业。