WebDriver driver = new FirefoxDriver()是这个编译时还是运行时绑定?

时间:2015-03-04 13:06:49

标签: java selenium

看起来我对我的核心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的实现类,因此基于上面的示例,假设语句:WebDriver driver=new FirefoxDriver()是后期绑定的示例是正确的。

1 个答案:

答案 0 :(得分:1)

  

WebDriver driver=new FirefoxDriver()是编译时绑定还是运行时绑定?

这是对名为FirefoxDriver的类的编译时绑定。它将使用类路径中的任何FirefoxDriver类。这与Java获得的编译时间差不多,因为Java在编译时从类路径运行,也在运行时运行。

以下是运行时绑定的示例:

String driverName = /*...get the name from somewhere, like a properties file...*/;
WebDriver driver = Class.forName(driverName).newInstance();