Howdy!
The answer of Suresh (and the
thread subject title) is wrong.
You are not over
riding anything, you are over
loading.
Test3 has got four seperate (but overloaded, and three of them inherited) m1-methods:
void m1(A a){...} inherited
void m1(B b){...} inherited
void m1(C c){...} inherited
void m1(Test3 d){...} own
Therefore also your notion that a1 IS_NOT-A Test3 is correct but irrelevant in this context.
Which method will be choosen?
Always the most specific one. Check the FAQ page for "most specific method".
Yours,
Bu.