B) Compile time ..
An overloaded function is really just a set of different functions that happen to have the same name.
The determination of which function to use for a particular call is resolved at compile time. In Java, function overloading is also known as compile-time polymorphism and static polymorphism...