我是Selenium WebDriver的新手。任何人都可以告诉我有什么区别 这两条线之间?
WebDriver driver = new FirefoxDriver();
和
FirefoxDriver d = new FirefoxDriver();
两者都启动Firefox浏览器。那么为什么我们总是写第一行而不是第二行呢?
答案 0 :(得分:6)
WebDriver是一个界面。
FirefoxDriver是实现。
为了更好地理解,请阅读Java接口上的文档。
答案 1 :(得分:3)
这就是所谓的“Java中的静态和动态绑定”。
你可以用上面的单词谷歌搜索,你会得到很多网站。
用简单的语言告诉你:
class vehicle
{
public void print(String str)
{ System.out.println("I am string "+str);}
public void print(Integer int)
{System.out.println("I am integer:"+int);}
public static void main(String[] args)
{
vehicle obj=new vehicle();
obj.print("Hello"); //Then it is clear that it will call first print method i.e String
} //This is method overloading.
}
这是在编译时决定的。所以静态绑定。
另一种情况是:
class vehicle
{
void start(){System.out.println("Vehicle started");}
}
class car extends vehicle
{
void start(){System.out.println("Car started");}
}
public static void main(String[] args)
{
vehicle obj=new car();
obj.start(); //Here it prints Car's start method and is decided at run time so dynamic binding
}
}
} //This is method overriding
根据你的问题:
WebDriver driver=new FirefoxDriver() //This is dynamic binding
FirefoxDriver driver=new FirefoxDriver() //Kind of static binding