WebDriver driver=new FirefoxDriver() 这个是编译时绑定还是运行时绑定?
WebDriver driver=new FirefoxDriver() is this compile-time or runtime binding?
看来我的核心 Java 概念有点混乱。请看下面。
class A{
public void func1()
{
System.out.println("Hello A");
}
}
class B extends A{
public void func1(){
System.out.println("Hello B");
}
}
class C {
public static void main( String args[]) {
A myobj = new B();
myobj.func1();
}
}
正如我们所知,Webdriver 是一个接口,而 FirefoxDriver 是 Webdriver 的实现 class,所以根据上面的例子,假设声明是正确的:WebDriver driver=new FirefoxDriver()
是一个迟到的例子绑定。
WebDriver driver=new FirefoxDriver()
is this compile-time or runtime binding?
这是对名为 FirefoxDriver
的 class 的编译时绑定。它将使用 class 路径中的任何 FirefoxDriver
class。这与 Java 得到的编译时差不多,因为 Java 在编译时和运行时从 class 路径工作。
下面是一个运行时绑定的例子:
String driverName = /*...get the name from somewhere, like a properties file...*/;
WebDriver driver = Class.forName(driverName).newInstance();
看来我的核心 Java 概念有点混乱。请看下面。
class A{
public void func1()
{
System.out.println("Hello A");
}
}
class B extends A{
public void func1(){
System.out.println("Hello B");
}
}
class C {
public static void main( String args[]) {
A myobj = new B();
myobj.func1();
}
}
正如我们所知,Webdriver 是一个接口,而 FirefoxDriver 是 Webdriver 的实现 class,所以根据上面的例子,假设声明是正确的:WebDriver driver=new FirefoxDriver()
是一个迟到的例子绑定。
WebDriver driver=new FirefoxDriver()
is this compile-time or runtime binding?
这是对名为 FirefoxDriver
的 class 的编译时绑定。它将使用 class 路径中的任何 FirefoxDriver
class。这与 Java 得到的编译时差不多,因为 Java 在编译时和运行时从 class 路径工作。
下面是一个运行时绑定的例子:
String driverName = /*...get the name from somewhere, like a properties file...*/;
WebDriver driver = Class.forName(driverName).newInstance();