// Base Page with encapsulated driver/page reference:
public abstract class BasePage {
protected String pageUrl;public BasePage(String pageUrl) {
this.pageUrl = pageUrl;
}
public void open() {
System.out.println("Navigating to: " + this.pageUrl);
}
}
// Child Page inheriting common capabilities:
public class LoginPage extends BasePage {
private String usernameSelector = "#username";
public LoginPage() {
super("https://targetqa.com/login");
}
public void login(String user, String pass) {
open();
System.out.println("Typing credentials into " + usernameSelector);
}
}