我有一个类Eg Person,它有一些参数Eg name,age。现在我想添加一些其他参数Eg employment。这些新参数只对应用程序的一种模式有用。
所以我创建了一个子类Employee extends Person。通过传递Person引用来重用所有的公共代码。Person p = new Employee();
但是我想访问员工特定的参数。我如何才能实现这一点?
我想添加instanceOf和强制转换到Employee,但它会导致许多if else条件。我还能做什么?我如何重新构造以重用现有代码,但仍然在应用程序的一种模式中使用新参数。
1条答案
按热度按时间cld4siwp1#
我建议在这种情况下尽可能使用合成
您可以使用组合来代替继承。创建一个单独的Employment类,并将其作为Person类中的字段添加。这样,您可以在需要时访问雇佣详细信息,对于非雇员,它可以为null。类似于
字符串
}
或者使用接口来实现这一点,如下所示
型