I did not understand what you meant by "re-usability of reference".
The whole concept of polymorphism in java relies on java's ability to use interface/base class reference to reference to sub class objects.
Also, programming to an interface rather than to the actual implementation is always seen as a best practice. This would allow the developer to replace one implementation with other/better implementation easily when required.
Example is you can simply change "List list=new Arraylist();" to "List list=new Linkedlist();" and leave the rest of the application untouched.