[英]Why Cannot call child class method from object of interface implemented in parent class
public interface WebDriver {
default void get() {
System.out.println("Opening Url");}
void click();
void sendKeys();
}
public class RemoteWebDriver implements WebDriver {
@Override
public void click() {
System.out.println("Clicking WebElement");
}
@Override
public void sendKeys() {
System.out.println("Entering Text");
}
}
public class ChromeDriver extends RemoteWebDriver {
public void clear() {
System.out.println("Clearing Text");
}
}
public class TestClass {
public static void main(String[] args) {
WebDriver driver = new ChromeDriver();
driver.get();
driver.click();
driver.sendKeys();
driver.clear();
}
}
driver.clear(); 在TestClass給出錯誤。 “對於類型WebDriver,方法clear()未定義”
2個快速修復可用:
我知道這個
((ChromeDriver) driver).clear();
解決問題。 但是誰能更邏輯地解釋為什么不允許調用子類方法
因為在編譯時它將檢查父類或接口中的方法,所以如果在父接口中找不到方法,它將給出編譯錯誤
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.