Hello, according to the computation done my the MyBrain Quantum Computer somewhere in Europe, the following result should be displayed when using the printClasses method:
Jerry; - for obj
Mouse; - for mouse; obj being downcasted to mouse
GrayMouse; - for grayMouse as it was downcasted to GrayMouse from Mouse;
Jerry; for the final object.
Why the 4 Jerries for the correct solution?
public class Solution {
    public static void main(String[] args) {
        Object obj = new Jerry(); // Add your code here

        Mouse mouse = (Mouse) obj;
        GrayMouse grayMouse = (GrayMouse) mouse;
        Jerry jerry = (Jerry) grayMouse;

        printClasses(obj, mouse, grayMouse, jerry);


    public static void printClasses(Object obj, Mouse mouse, GrayMouse grayMouse, Jerry jerry) {

    static class Mouse {

    static class GrayMouse extends Mouse {

    static class Jerry extends GrayMouse {