How does Java do overloading at compile time if all the non-static functions are implicit virtual which would mean non static things are bound at run-time and only static things at compile time?
valid question