【发布时间】:2015-03-27 19:20:51
【问题描述】:
目前在我的 Java 程序中,我有一个基础 Parent 类,其中包含几个返回自身新实例的方法。例如:
public BasePage fill(String input, By locator) {
driver.findElement(locator).clear();
driver.findElement(locator).sendKeys(input);
return new BasePage(driver);
}
另外,我有几个类用自己的方法扩展了这个基类。我的问题是:在我的主程序中有没有一种方法可以调用这些 Parent 方法,但不使用强制转换将返回的值分配给子类?例如,如果我有一个loginPage Child 类需要在主程序中使用此方法,我将如何转:
loginPage = (LoginPage) loginPage.fill("username", usernameLocator);
进入这个:
loginPage = loginPage.fill("username", usernameLocator);
我在哪里初始化类:
public class LoginPage extends BasePage {
}
虽然在这个例子中没有提到,但是否可以允许它返回任何子类,这样它就不仅限于一个类。
【问题讨论】:
-
你熟悉
Java Polymorphism吗? -
我已经阅读了关于 Java Polymorphism 的页面,但它没有任何关于返回父类并将该值分配给子类而不进行强制转换的信息
标签: java inheritance