Depending on the type of the expression in the switch statement (in this case type of me=MEnum) it will expect the same type in the case statement. More ever they should be constants. Which means A,B,C in case statements are of type MEnum and not variables of type int, defined above the switch.
Thus, given that the value of 'me' is 'A', 'switch(me)' will match 'case A' and hence will print the answer you mentioned 'Only A Only B Only C' (as there is no break statement in between).
If A,B,C were to shadow then the program won't run at all coz non final variables cannot be used as case statements. Also, the case statements match the type specified by the switch statement.
[ SCJP 6.0 - 90% ] , JSP, Servlets and Learning EJB.
Try out the programs using a TextEditor. Textpad - Java 6 api