Qual é a diferença entre o ChromeDriver e o WebDriver em selênio?

Se criarmos:

ChromeDriver driver=new ChromeDriver();

métodos de driver chrome serão executados.

E se criarmos:

WebDriver driver=new ChromeDriver();

novamenteChromeDriver métodos são executados [conforme a substituição do método].

Então, por que escrevemos este último apenas durante a execução?

questionAnswers(1)

yourAnswerToTheQuestion