So how does the 'toString' method gets activated?
If you put any reference type inside System.out.println() It tries to call toString() method of that object type inside that reference. Unless that reference type is null, you will get some String as output.
Now coming back to your question
You got following output
Your choice: This is a Cat
It's C the D
because On line1 you are first called super class's toStrng() method inside Cat's toString() method.