Which class design is better and why?
public class User { public String UserName; public String Password; public String FirstName; public String LastName; } public class Employee : User { public String EmployeeId; public String EmployeeCode; public String DepartmentId; } public class Member : User { public String MemberId; public String JoinDate; public String ExpiryDate; }
OR
public class User { public String UserId; public String UserName; public String Password; public String FirstName; public String LastName; } public class Employee { public User UserInfo; public String EmployeeId; public String EmployeeCode; public String DepartmentId; } public class Member { public User UserInfo; public String MemberId; public String JoinDate; public String ExpiryDate; }
The question is simply answered by recognising that inheritance models an ‘IS-A’ relationship, while membership models a ‘HAS-A’ relationship.
Which one is correct? This is your answer.