如果java函数的返回值是仅在运行时才知道的两个可能对象之一,那么我的java函数应返回什么对象?

jsu*_*ton 3 java subclass object superclass

我有一个名为PageObject的超类,然后是两个名为AlphaPage和BetaPage的子类,它们继承了PageObject.函数"selectPage()"将返回其中一个页面,但返回的特定页面只能在运行时知道.

那么函数的返回对象应该是什么,以避免必须将其中一个子类强制转换为函数调用的返回值?

Jon*_*eet 7

如果信息仅在执行时知道,则调用者必须在他们想要特定类型时进行强制转换.PageObject基本上你应该回来.

当然,如果调用者不需要任何特定的东西,AlphaPage或者BetaPage- 如果他们只能使用声明的方法(可能是抽象的)PageObject,那么就没有必要进行强制转换.这将是理想的 - 使用多态来处理差异.这实际上取决于调用者需要做什么.