There can be three ways in which castMe can be called. Let us see how each will react.
1. If you pass an instance of C1 then the method will try to cast into C3 this will give you a ClassCastException since
java does not support downcasting.
2. If you pass an instance of C2 then the same message as in C1.
3. If you pass an instance of C3 that will go through.
So (c) is the only answer for your question.