I do not understand this Java behavior. I have two classes:
class C1 { public void m1(double num) { System.out.println(\"Inside C1.m1(): \" + num
Java does method dispatch on static types, and your variable c is of type C1, so m1(int) is not visible, and your 10 is cast to double.
c
C1
m1(int)
10
double