Hi debasmita,
One thumb rule that you can remember is "Super class references can hold child class objects where as child class reference cannot hold superclass object".
next in your question,
all each and every method m() defined ,can handle m(c,c).
because all are super classes of c.
next
"method call to the methodbody linkage will be done at the time of compile time only"
so you are putting the compiler in confusion ,like which method to link to your m(c,c).
so..the above situation leads to ambiguity...thats why compile time error...
i hope you got it....