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

标签 java object subclass superclass

我有一个名为 PageObject 的父类(super class),然后是两个继承 PageObject 的名为 AlphaPage 和 BetaPage 的子类。 函数“selectPage()”将返回这些页面之一,但要返回的具体页面只有在运行时才知道。

函数的返回对象应该是什么,这样才能避免将子类之一强制转换为函数调用的返回值?

最佳答案

如果调用者想要特定类型,则他们将必须进行转换,因为信息仅在执行时已知。基本上,您应该返回 PageObject

当然,如果调用者不需要任何特定于 AlphaPageBetaPage 的东西 - 如果他们可以只使用在 PageObject 上声明的方法(可能是抽象的) ,那么就不需要强制转换了。那将是理想的——使用多态性来处理差异。不过,这实际上取决于调用者需要做什么。

关于java - 如果 java 函数的返回值是仅在运行时已知的两个可能对象之一,我的 java 函数应该返回什么对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12482522/

相关文章:

java - oncreate Application 类中的 IllegalStateException

Javascript - 使用字符串构造对象属性

javascript - 使对象的对象成为一个对象javascript

java - Play框架1.2.5中的GSON错误

java - eclipse 中字符串搜索程序的性能增强

arrays - 使用 JSON 数组和 JSON 对象有什么区别?

swift - 以编程方式创建 SKScene 子类,没有大小信息?

Python:float 的子类可以在其构造函数中使用额外的参数吗?

macos - Swift 协议(protocol)方法与父类(super class)属性冲突

Java Applet Windows-MY keystore PrivateKey getEncoded 为 null