Oh, that's like saying "Why should you drive a Mercedes when you can drive any old car?" or "why should you eat a steak, when any old protein source will do."
Maybe your Foo can drive you somewhere. Any old, drivable foo will do, but who wants to drive in any old foo? I like exotic, German or Italian foos myself.
When we code, we like to code to an interface, and make sure everything works with the most simple and basic types of objects. If you need to get home from the airport, a limo would be nice, but if the Canadians cut off the oil pipelines, you may need to take an electric train or a rickshaw.
The point is, coding to the interface or most general aspect makes things the most flexible. But at runtime, you can supply the most specific, best type of object you can think of that will do the job the best. That's the beauty of polymorphism.
Now if everythings good, I'm going to jump in my BMW and grab some dinner at Ruth's Chris Steakhouse.
In fact, this is very close to how, for example, JDBC works:
Only that the code in DriverManager is much more dynamic than a hard coded if-else chain.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus