Thanks Campbell Ritchie..
I understood that Java Language Specification section.
Specially this line in Java Language Specification section:
A method m1 is strictly more specific than another method m2 if and only if m1 is more specific than m2 and m2 is not more specific than m1.
In my code, each method is not more specific than the other one. I have to make a method more specific to make my code work.