I understand that webdriver is an interface of which driver is a reference variable. But in Java the reference variable holds a reference to the object. It does not hold the memory address of the object but a reference. Now webdriver is an interface and it's reference variable is driver which will refer the object of Chrome driver. So if it is only going to point to the chromedriver object, then a chromedriver object reference variable can do that. It's not like it will hold the properties of webdriver interface, chrome driver class is already doing that.
Can someone explain this concept to me and please don't post interface or top casting links? I am aware that this is top casting i am just trying to understand the purpose of this line here.