Under which of these conditions should method overloading be used?: *
A) When you want to override the functionality of an inherited method with another one having the same name
B) When the methods have different parameter names
C) When the methods have similar behavior but they differ in their arity or parameter types
D) Two methods with the same name will cause a compilation error