使用操作符实例从父引用访问子类变量是否不好

问题描述 投票:0回答:1

我有一个类,例如 Person,有一些参数,例如姓名、年龄。 现在我想添加一些其他参数,例如就业。这些新参数仅对应用程序的一种模式有用。

所以我创建了一个 Employee 扩展 Person 的子类。并通过传递 Person 引用来重用所有公共代码。 人 p = new Employee();

但我想访问员工特定的参数。我怎样才能做到这一点?

我想过添加instanceOf并强制转换为Employee,但这会导致很多if else条件。我还可以做些什么?如何重组以重用现有代码,但仍仅在一种应用程序模式中使用新参数。

java inheritance classcastexception reusability
1个回答
0
投票

在这种情况下我建议如果可能的话使用组合

您可以使用组合来代替继承。创建一个单独的Employment 类并将其添加为Person 类中的字段。这样,您可以在需要时访问就业详细信息,并且对于非员工来说可以为空。类似的东西

class Employment {
// employment details
}

class Person {
// ...
private Employment employment;
// ...

}

© www.soinside.com 2019 - 2024. All rights reserved.